package a.f.l;

import a.c.bb;
import a.c.k;
import a.c.m;
import a.c.v;
import a.c.z;
import a.f.*;
import a.f.r;
import a.i.p;

import java.awt.geom.Rectangle2D;
import java.awt.geom.Rectangle2D.Double;
import java.util.*;

import a.f.l.x;
import a.f.l.y;
import a.f.l.ab;
import a.i.p;

public class g
  extends r
{
  public static final byte g = 0;
  public static final byte h = 1;
  public static final byte i = 2;
  public static final byte j = 3;
  public static final byte k = 0;
  public static final byte l = 1;
  public static final byte m = 2;
  public static final byte n = 3;
  private static final String o = "y.layout.router.ORTHOGONAL_EDGE_ROUTER_NODE_SIZE_CHECKED_DPKEY";
  private a.f.o p;
  private byte q;
  private boolean r;
  private a.d.w s;
  private int t;
  private int u;
  private double v;
  private double w;
  private a.c.q x;
  private a.c.ab y;
  private a.c.e z;
  private a.c.e A;
  private a.c.d B;
  private boolean C;
  private k D;
  private k E;
  private db.f_ F;
  private sb G;
  private a.c.x H;
  private a.c.x I;
  private a.c.n J;
  private a.c.x K;
  private static final double L = 2.0D;
  private static final int M = 2;
  static final byte N = 1;
  static final byte O = 10;
  static final byte P = 2;
  static final byte Q = 20;
  static final byte R = 8;
  static final byte S = 80;
  static final byte T = 4;
  static final byte U = 40;
  private static final int V = 0;
  private static final int W = 16;
  private static final int X = 64;
  private static final int Y = 128;
  private static final int Z = 144;
  private static final int ab = 192;
  private boolean bb;
  private boolean cb;
  private int db;
  private int eb;
  private int fb;
  private int gb;
  private int hb;
  private int ib;
  private int jb;
  private a.i.mb kb;
  private a.i.mb lb;
  private a.i.mb mb;
  private a.i.mb nb;
  private a.i.mb ob;
  private a.i.mb pb;
  private a.i.mb qb;
  private a.i.mb rb;
  private a.c.n sb;
  private a.c.n tb;
  private a.c.n ub;
  private a.c.x vb;
  private boolean wb;
  private boolean xb;
  private boolean yb;
  private int zb;
  private boolean Ab;
  private int Bb;
  private boolean Cb;
  private boolean Db;
  private boolean Eb;
  private double Fb;
  private byte Gb;
  private boolean Hb;
  private boolean Ib;
  private boolean Jb;
  private boolean Kb;
  private static final double Lb = 1.0D;
  private static final double Mb = 100.0D;
  private static final double Nb = 0.01D;
  private a.c.ab Ob;
  private HashMap Pb = new HashMap();
  private byte Qb = 0;
  private boolean Rb = false;
  private boolean Sb = false;
  private boolean Tb;
  Object Ub = rc.d;
  Object Vb = rc.c;
  public static final byte Wb = 0;
  public static final byte Xb = 2;
  public static final byte Yb = 4;
  private boolean Zb;
  private boolean ac;
  Map bc;
  private a.c.n cc;
  private a.c.n dc;
  private int ec;
  private double fc;
  private double gc;
  private double hc;
  private double ic;
  private double jc = 0.0D;
  private int kc = 0;
  private boolean lc = false;
  pb mc;
  a.c.x nc;
  private a.c.x oc;
  private a.c.x pc;
  private db.g_ qc;
  private db.f_ rc;
  private db.f_ sc;
  private db.f_ tc;
  private a.c.d[] uc;
  private boolean vc;
  private boolean wc;
  private boolean xc = false;
  private boolean yc = false;
  private boolean zc = true;
  private boolean Ac = true;
  public static int Bc;
  public static int Cc;
  
  public Object b()
  {
    return this.Vb;
  }
  
  public void a(Object paramObject)
  {
    if (paramObject == null) {
      throw new IllegalArgumentException("null");
    }
    this.Vb = paramObject;
  }
  
  public Object c()
  {
    return this.Ub;
  }
  
  public void b(Object paramObject)
  {
    if (paramObject == null) {
      throw new IllegalArgumentException("null");
    }
    this.Ub = paramObject;
  }
  
  public void a(boolean paramBoolean)
  {
    this.Sb = paramBoolean;
  }
  
  public boolean d()
  {
    return this.Sb;
  }
  
  public byte e()
  {
    return this.Qb;
  }
  
  public void a(byte paramByte)
  {
    this.Qb = paramByte;
  }
  
  public boolean f()
  {
    return this.Rb;
  }
  
  public void b(boolean paramBoolean)
  {
    this.Rb = paramBoolean;
  }
  
  private boolean g()
  {
    int i1 = Cc;
    if (i1 == 0) {
      if (this.Qb != 1) {
        if (i1 != 0) {
          break label29;
        }
      }
    }
    label29:
    return this.Qb == 3;
  }
  
  private boolean h()
  {
    int i1 = Cc;
    if (i1 == 0) {
      if (this.Qb != 2) {
        if (i1 != 0) {
          break label29;
        }
      }
    }
    label29:
    return this.Qb == 3;
  }
  
  private boolean i()
  {
    if (Cc == 0) {}
    return this.Qb != 0;
  }
  
  public g()
  {
    this(null);
  }
  
  public g(rc paramrc)
  {
    super.a(paramrc);
    this.Zb = true;
    this.Tb = true;
    this.ac = false;
    c((byte)3);
    this.Ib = true;
    this.q = 0;
    this.r = false;
    this.s = new a.d.w(0.0D, 0.0D);
    this.t = 2;
    this.u = this.t;
    this.v = 2.0D;
    this.w = this.v;
    this.wb = true;
    this.vc = true;
    this.Cb = true;
    this.Db = true;
    this.Eb = true;
    this.Fb = 0.5D;
    this.bb = false;
    this.cb = false;
    this.Jb = true;
    this.xb = true;
    this.wc = false;
  }
  
  public boolean canLayout(a.f.o paramo)
  {
    if (paramo.c("y.layout.router.ORTHOGONAL_EDGE_ROUTER_NODE_SIZE_CHECKED_DPKEY") == null) {
      try
      {
        c(paramo);
      }
      catch (IllegalArgumentException localIllegalArgumentException)
      {
        return false;
      }
    }
    rc localrc = a();
    if ((Cc != 0) || (localrc != null)) {
      return localrc.canLayout(paramo);
    }
    return true;
  }
  
  public void doLayout(a.f.o paramo)
  {
    int i3 = Cc;
    int i2 = Bc;
    int i1 = 0;
    if (i3 == 0)
    {
      if (paramo.c("y.layout.router.ORTHOGONAL_EDGE_ROUTER_NODE_SIZE_CHECKED_DPKEY") == null) {
        c(paramo);
      }
    }
    else
    {
      paramo.a("y.layout.router.ORTHOGONAL_EDGE_ROUTER_NODE_SIZE_CHECKED_DPKEY", a.i.q.a(Boolean.TRUE));
      i1 = 1;
    }
    Object localObject2;
    if (i3 == 0)
    {
      if (this.q == 2)
      {
        if (i3 != 0) {
          break label183;
        }
        localObject1 = c();
        localObject2 = paramo.c(localObject1);
        if (localObject2 == null) {
          throw new IllegalStateException("No DataProvider " + localObject1 + " registered with graph!");
        }
      }
      else
      {
        if (i3 != 0) {
          break label183;
        }
      }
    }
    else if (this.q == 4)
    {
      if (i3 != 0) {
        break label183;
      }
      localObject1 = b();
      localObject2 = paramo.c(localObject1);
      if (localObject2 == null) {
        throw new IllegalStateException("No DataProvider " + localObject1 + " registered with graph!");
      }
    }
    label183:
    Object localObject1 = a();
    if ((i3 != 0) || (localObject1 != null)) {
      ((rc)localObject1).doLayout(paramo);
    }
    if (i3 == 0) {
      if (paramo.m() > 0)
      {
        localObject2 = new db(paramo, this);
        ((db)localObject2).b();
        ((db)localObject2).e();
        this.kb = new a.i.mb();
        this.p = paramo;
        this.Ob = new a.c.ab();
        this.dc = paramo.C();
        this.ec = 0;
        d_ locald_ = new d_(paramo, null);
        if (i3 == 0)
        {
          if (d()) {
            locald_.a();
          }
          this.vb = a.i.db.a();
          j();
          l();
          this.tb = a.i.db.b();
        }
        this.ub = a.i.db.b();
        a.c.n localn = a.i.db.b();
        Object localObject3 = this.y.l();
        do
        {
          do
          {
            if (!((m)localObject3).e()) {
              break;
            }
            localn.a(((m)localObject3).a(), true);
            ((m)localObject3).f();
            if (i3 != 0) {
              break label410;
            }
            if (i2 != 0) {
              break label403;
            }
          } while (i2 == 0);
        } while (i3 != 0);
        localObject3 = paramo.w();
        label403:
        label410:
        Object localObject4;
        do
        {
          if (!((m)localObject3).e()) {
            break;
          }
          localObject4 = ((m)localObject3).a();
          if (i2 != 0) {
            break label474;
          }
          if (!localn.getBool(localObject4)) {
            a((a.c.d)localObject4, paramo);
          }
          ((m)localObject3).f();
        } while (i2 == 0);
        if (i3 == 0)
        {
          r();
          label474:
          do
          {
            if (this.Ob.isEmpty()) {
              break;
            }
            localObject3 = this.Ob.o();
            b((a.c.d)localObject3);
            if (i3 != 0) {
              break label538;
            }
            if (i2 != 0) {
              break label534;
            }
          } while (i2 == 0);
          this.ib = this.x.j();
        }
        label534:
        label538:
        label574:
        label578:
        label622:
        Object localObject5;
        if (i3 == 0)
        {
          this.jb = this.x.l();
          if (i3 == 0) {
            if (this.vc)
            {
              if (i3 == 0) {
                if (this.Tb)
                {
                  if (i3 != 0) {
                    break label578;
                  }
                  if (this.lc) {
                    break label574;
                  }
                }
              }
              n();
            }
          }
          if (i3 == 0) {
            if (this.lc)
            {
              if (i3 != 0) {
                break label622;
              }
              if (w())
              {
                x();
                if (i3 != 0) {
                  break label622;
                }
                if (this.vc) {
                  n();
                }
              }
            }
          }
          if (i3 != 0) {
            break label734;
          }
          if (this.ec > 0)
          {
            if (i3 != 0) {
              break label734;
            }
            if (!this.r) {}
          }
        }
        else
        {
          localObject3 = a(this);
          ((g)localObject3).d(false);
          ((g)localObject3).b((byte)2);
          localObject4 = c();
          localObject5 = paramo.c(localObject4);
          paramo.a(localObject4, this.dc);
          ((g)localObject3).doLayout(paramo);
          paramo.j(localObject4);
          if (i3 != 0) {
            break label931;
          }
          if (localObject5 == null) {
            break label927;
          }
          paramo.a(localObject4, (k)localObject5);
          if (i3 != 0) {
            break label931;
          }
          if (i2 == 0) {
            break label927;
          }
        }
        if (i3 == 0)
        {
          if (this.ec > 0)
          {
            label734:
            if (i3 != 0) {
              break label932;
            }
            if (this.xb)
            {
              localObject3 = new c();
              localObject4 = paramo.c("edge2RoutedByChannelEdgeRouter");
              if (i3 == 0)
              {
                if (localObject4 != null)
                {
                  localObject5 = paramo.w();
                  do
                  {
                    if (!((m)localObject5).e()) {
                      break;
                    }
                    a.c.d locald = ((m)localObject5).a();
                    if (i2 != 0) {
                      break label935;
                    }
                    if ((((k)localObject4).get(locald) instanceof a.i.g))
                    {
                      a.i.g localg = (a.i.g)((k)localObject4).get(locald);
                      localg.a(this.dc.getBool(locald));
                    }
                    ((m)localObject5).f();
                  } while (i2 == 0);
                }
                paramo.a(c.g, this.dc);
              }
              localObject5 = new h();
              ((h)localObject5).a(c.g);
              ((h)localObject5).a(e());
              ((c)localObject3).b((rc)localObject5);
              ((c)localObject3).doLayout(paramo);
              if (i3 != 0) {
                break label944;
              }
              paramo.j(c.g);
            }
          }
          label927:
          k();
        }
        label931:
        label932:
        if (d()) {
          label935:
          locald_.c();
        }
        label944:
        paramo.a(this.dc);
        this.x = null;
        this.y = null;
        this.E = null;
        this.D = null;
        this.F = null;
        this.G = null;
        this.H = null;
        this.I = null;
        this.J = null;
        this.K = null;
        this.kb.b();
        if (this.bb) {
          System.out.print(F());
        }
        ((db)localObject2).f();
      }
    }
    if (i1 != 0) {
      paramo.j("y.layout.router.ORTHOGONAL_EDGE_ROUTER_NODE_SIZE_CHECKED_DPKEY");
    }
  }
  
  private g a(g paramg)
  {
    g localg = new g();
    localg.a(paramg.a());
    localg.a(paramg.d());
    localg.d(paramg.M());
    localg.g(paramg.R());
    localg.c(paramg.P());
    localg.e(paramg.L());
    localg.b(paramg.u());
    localg.e(paramg.T());
    localg.h(paramg.S());
    localg.b(paramg.f());
    localg.a((int)paramg.I().a, (int)paramg.I().b);
    localg.d(paramg.H());
    localg.b(paramg.J());
    localg.i(paramg.U());
    localg.f(paramg.O());
    localg.c(paramg.K());
    localg.d(paramg.M());
    localg.a(paramg.e());
    localg.c(paramg.v());
    localg.c(paramg.Q());
    localg.b(paramg.G());
    localg.b(paramg.c());
    return localg;
  }
  
  private void c(a.f.o paramo)
  {
    a(paramo, paramo);
  }
  
  private void a(a.c.t paramt, dc paramdc)
  {
    int i2 = Cc;
    int i1 = Bc;
    k localk = paramt.c(i.c);
    if ((i2 != 0) || (localk == null)) {
      localk = a.i.q.a(Boolean.FALSE);
    }
    Iterator localIterator = paramt.a();
    label105:
    do
    {
      Object localObject;
      do
      {
        if (!localIterator.hasNext()) {
          return;
        }
        localObject = localIterator.next();
        if (i2 != 0) {
          break label105;
        }
        if (localk.getBool(localObject)) {
          break;
        }
        a(paramdc, localObject);
        if (i2 != 0) {
          break label105;
        }
      } while (i1 == 0);
      b(paramdc, localObject);
    } while (i1 == 0);
  }
  
  protected void a(dc paramdc, Object paramObject)
    throws IllegalArgumentException
  {
    zc localzc = paramdc.d(paramObject);
    if ((Cc != 0) || ((localzc.c() == 0.0D) || (localzc.d() == 0.0D))) {
      throw new IllegalArgumentException("Graph contains nodes with zero width/height. Please enlarge those nodes manually or by using LayoutStage y.layout.MinNodeSizeStage.");
    }
  }
  
  protected void b(dc paramdc, Object paramObject)
    throws IllegalArgumentException
  {
    zc localzc = paramdc.d(paramObject);
    if ((Cc != 0) || ((localzc.c() == 0.0D) || (localzc.d() == 0.0D))) {
      throw new IllegalArgumentException("Graph contains group nodes with zero width/height. Please enlarge those nodes manually or by using LayoutStage y.layout.MinNodeSizeStage.");
    }
  }
  
  void j()
  {
    int i2 = Cc;
    int i1 = Bc;
    this.I = this.p.B();
    this.J = this.p.C();
    this.cc = this.p.C();
    do
    {
      m localm = this.p.w();
      while (i1 == 0)
      {
        if (!localm.e()) {
          break;
        }
        this.J.a(localm.a(), new q(localm.a()));
        localm.f();
      }
    } while (i2 != 0);
  }
  
  void k()
  {
    this.p.a(this.I);
    this.p.a(this.J);
    this.p.a(this.cc);
  }
  
  void l()
  {
    int i1 = Cc;
    this.kc = 0;
    D();
    s();
    m();
    if (i1 == 0)
    {
      if (this.wb) {
        this.K = this.x.B();
      }
      this.nb = new a.i.mb();
      z();
      this.nb.b();
    }
    if (i1 == 0) {
      if (this.yb) {
        a(this.zb);
      }
    }
    if ((i1 != 0) || ((Bc != 0) && ((i1 != 0) || (this.r)))) {
      a(0.5D * this.t);
    }
  }
  
  private void m()
  {
    int i2 = Cc;
    int i1 = Bc;
    this.bc = new HashMap();
    a.c.w localw = this.p.v();
    label161:
    label168:
    label318:
    label325:
    label379:
    label381:
    do
    {
      do
      {
        if (!localw.e()) {
          return;
        }
        a.c.e locale = localw.d();
        nb localnb = (nb)this.E.get(locale);
        if (i2 == 0)
        {
          if (e(locale))
          {
            a(localnb.a);
            a(localnb.c);
            localy = localnb.a.h();
            do
            {
              do
              {
                if (!localy.e()) {
                  break;
                }
                this.bc.put(localy.j(), locale);
                localy.f();
                if (i2 != 0) {
                  break label168;
                }
                if (i1 != 0) {
                  break label161;
                }
              } while (i1 == 0);
            } while (i2 != 0);
            localy = localnb.c.h();
            do
            {
              if (!localy.e()) {
                break;
              }
              this.bc.put(localy.j(), locale);
              localy.f();
              if (i2 != 0) {
                break label381;
              }
              if (i1 != 0) {
                break label379;
              }
            } while (i1 == 0);
          }
          if (i2 == 0) {
            if (i2 != 0) {
              break label381;
            }
          }
        }
        else
        {
          if (!f(locale)) {
            continue;
          }
          a(localnb.g);
        }
        a(localnb.e);
        a.c.y localy = localnb.g.h();
        do
        {
          do
          {
            if (!localy.e()) {
              break;
            }
            this.bc.put(localy.j(), locale);
            localy.f();
            if (i2 != 0) {
              break label325;
            }
            if (i1 != 0) {
              break label318;
            }
          } while (i1 == 0);
        } while (i2 != 0);
        localy = localnb.e.h();
        do
        {
          if (!localy.e()) {
            break;
          }
          this.bc.put(localy.j(), locale);
          localy.f();
          if (i2 != 0) {
            break label381;
          }
          if (i1 != 0) {
            break label379;
          }
        } while (i1 == 0);
      } while (i2 != 0);
      localw.f();
    } while (i1 == 0);
  }
  
  private void a(z paramz)
  {
    int i1 = Bc;
    a.c.y localy = paramz.h();
    do
    {
      if (!localy.e()) {
        break;
      }
      x localx = (x)localy.j();
      localx.g = true;
      localy.f();
    } while (i1 == 0);
  }
  
  private boolean a(a.c.d paramd, boolean paramBoolean)
  {
    int i3 = Cc;
    int i2 = Bc;
    q localq = (q)this.J.get(paramd);
    if (i3 == 0) {
      if (localq.a(paramBoolean)) {
        if (i3 != 0) {
          break label57;
        }
      }
    }
    label57:
    int i1 = this.p.m(paramd).isEmpty() ? 1 : 0;
    if (i3 == 0)
    {
      if (i1 == 0) {
        return false;
      }
      if (i3 != 0) {}
    }
    else if (localq.b(paramBoolean))
    {
      return true;
    }
    Collection localCollection = localq.c(paramBoolean);
    if (((i3 != 0) || (localCollection != null)) && ((i3 != 0) || (!localCollection.isEmpty())))
    {
      Iterator localIterator = localCollection.iterator();
      while (localIterator.hasNext())
      {
        ad localad = (ad)localIterator.next();
        if (localad.b())
        {
          if ((i3 != 0) || (i2 != 0)) {
            break label174;
          }
          return true;
        }
      }
    }
    label174:
    return false;
  }
  
  void n()
  {
    int i2 = Cc;
    int i1 = Bc;
    n localn = new n();
    localn.S = c();
    localn.R = b();
    localn.Q = this.q;
    localn.J = this.xc;
    localn.K = this.Cb;
    localn.L = this.r;
    localn.M = this.s;
    localn.N = this.t;
    localn.O = this.u;
    localn.P = this.v;
    p local6 = new p()
    {
      public Object get(Object paramAnonymousObject)
      {
        return cd.a(, g.this.a((a.c.d)paramAnonymousObject, true));
      }
    };
    p local7 = new p()
    {
      public Object get(Object paramAnonymousObject)
      {
        return cd.a(, g.this.a((a.c.d)paramAnonymousObject, false));
      }
    };
    k localk1 = this.p.c(ed.a);
    k localk2 = this.p.c(ed.b);
    this.p.a(ed.a, local6);
    this.p.a(ed.b, local7);
    a.i.y localy = new a.i.y(this.p);
    Object localObject = this.p.w();
    while (((m)localObject).e())
    {
      if (i2 == 0)
      {
        if (this.cc.getBool(((m)localObject).a())) {
          localy.a(((m)localObject).a());
        }
        ((m)localObject).f();
      }
      if (i1 != 0)
      {
        if (i2 == 0) {}
        a.c.q.n = !a.c.q.n;
      }
    }
    localObject = new d(localn);
    a.c.n localn1 = a.i.db.b(new boolean[this.p.l()]);
    a(localn1);
    this.p.a(d.g, a.i.q.c(localn1));
    ((d)localObject).doLayout(this.p);
    this.p.j(d.g);
    localy.g();
    this.p.j(ed.a);
    this.p.j(ed.b);
    if (i2 == 0) {
      if (localk1 != null) {
        this.p.a(ed.a, localk1);
      }
    }
    if (localk2 != null) {
      this.p.a(ed.b, localk2);
    }
    if (i2 != 0) {
      a.c.q.o = !a.c.q.o;
    }
  }
  
  public boolean a(String paramString, Object paramObject)
  {
    int i2 = Cc;
    int i1 = Bc;
    boolean bool = false;
    if (i2 == 0) {
      if ("CD".equals(paramString))
      {
        if (i2 != 0) {
          break label653;
        }
        if (!(paramObject instanceof Boolean)) {
          return bool;
        }
        this.Db = ((Boolean)paramObject).booleanValue();
        bool = true;
        if (i2 != 0) {
          break label653;
        }
        if (i1 == 0) {
          return bool;
        }
      }
    }
    if (i2 == 0) {
      if ("SD".equals(paramString))
      {
        if (i2 != 0) {
          break label653;
        }
        if (!(paramObject instanceof Boolean)) {
          return bool;
        }
        this.Eb = ((Boolean)paramObject).booleanValue();
        bool = true;
        if (i2 != 0) {
          break label653;
        }
        if (i1 == 0) {
          return bool;
        }
      }
    }
    if (i2 == 0) {
      if ("AMD".equals(paramString))
      {
        if (i2 != 0) {
          break label653;
        }
        if (!(paramObject instanceof Boolean)) {
          return bool;
        }
        this.wb = ((Boolean)paramObject).booleanValue();
        bool = true;
        if (i2 != 0) {
          break label653;
        }
        if (i1 == 0) {
          return bool;
        }
      }
    }
    if (i2 == 0) {
      if ("Stats".equals(paramString))
      {
        if (i2 != 0) {
          break label653;
        }
        if (!(paramObject instanceof Boolean)) {
          return bool;
        }
        this.bb = ((Boolean)paramObject).booleanValue();
        bool = true;
        if (i2 != 0) {
          break label653;
        }
        if (i1 == 0) {
          return bool;
        }
      }
    }
    if (i2 == 0) {
      if ("swStats".equals(paramString))
      {
        if (i2 != 0) {
          break label653;
        }
        if (!(paramObject instanceof Boolean)) {
          return bool;
        }
        this.cb = ((Boolean)paramObject).booleanValue();
        bool = true;
        if (i2 != 0) {
          break label653;
        }
        if (i1 == 0) {
          return bool;
        }
      }
    }
    if (i2 == 0) {
      if ("addS".equals(paramString))
      {
        if (i2 != 0) {
          break label653;
        }
        if (!(paramObject instanceof Boolean)) {
          return bool;
        }
        this.xc = ((Boolean)paramObject).booleanValue();
        bool = true;
        if (i2 != 0) {
          break label653;
        }
        if (i1 == 0) {
          return bool;
        }
      }
    }
    if (i2 == 0) {
      if ("smallSPR".equals(paramString))
      {
        if (i2 != 0) {
          break label653;
        }
        if (!(paramObject instanceof Boolean)) {
          return bool;
        }
        this.zc = ((Boolean)paramObject).booleanValue();
        bool = true;
        if (i2 != 0) {
          break label653;
        }
        if (i1 == 0) {
          return bool;
        }
      }
    }
    if (i2 == 0) {
      if ("lessSPR".equals(paramString))
      {
        if (i2 != 0) {
          break label653;
        }
        if (!(paramObject instanceof Boolean)) {
          return bool;
        }
        this.Ac = ((Boolean)paramObject).booleanValue();
        bool = true;
        if (i2 != 0) {
          break label653;
        }
        if (i1 == 0) {
          return bool;
        }
      }
    }
    if (i2 == 0) {
      if ("TT".equals(paramString))
      {
        if (i2 != 0) {
          break label653;
        }
        if (!(paramObject instanceof Boolean)) {
          return bool;
        }
        this.Cb = ((Boolean)paramObject).booleanValue();
        bool = true;
        if (i2 != 0) {
          break label653;
        }
        if (i1 == 0) {
          return bool;
        }
      }
    }
    if (i2 == 0) {
      if ("routingPreferMiddleOfNode".equals(paramString))
      {
        if (i2 != 0) {
          break label653;
        }
        if (!(paramObject instanceof Boolean)) {
          return bool;
        }
        this.Ib = ((Boolean)paramObject).booleanValue();
        bool = true;
        if (i2 != 0) {
          break label653;
        }
        if (i1 == 0) {
          return bool;
        }
      }
    }
    if (i2 == 0) {
      if ("AllowRigModification".equalsIgnoreCase(paramString))
      {
        if (i2 != 0) {
          break label653;
        }
        if (!(paramObject instanceof Boolean)) {
          return bool;
        }
        this.Zb = ((Boolean)paramObject).booleanValue();
        bool = true;
        if (i2 != 0) {
          break label653;
        }
        if (i1 == 0) {
          return bool;
        }
      }
    }
    if (i2 == 0) {
      if ("IgnoreUnselectedEdges".equalsIgnoreCase(paramString))
      {
        if (i2 != 0) {
          break label653;
        }
        if (!(paramObject instanceof Boolean)) {
          return bool;
        }
        this.ac = ((Boolean)paramObject).booleanValue();
        bool = true;
        if (i2 != 0) {
          break label653;
        }
        if (i1 == 0) {
          return bool;
        }
      }
    }
    if (i2 == 0) {
      if ("ObserveOccupiedPorts".equalsIgnoreCase(paramString))
      {
        if (i2 != 0) {
          break label653;
        }
        if ((paramObject instanceof Boolean))
        {
          this.Tb = ((Boolean)paramObject).booleanValue();
          bool = true;
        }
      }
    }
    label653:
    return bool;
  }
  
  private void a(double paramDouble)
  {
    int i2 = Cc;
    int i1 = Bc;
    a.c.w localw = this.p.v();
    do
    {
      if (!localw.e()) {
        break;
      }
      a.c.e locale = localw.d();
      if (!d(locale))
      {
        ab localab = new ab(this.p.o(locale), this.H);
        nb localnb = (nb)this.E.get(locale);
        x localx = b(localnb.a);
        if (i2 == 0)
        {
          if (localx != null) {
            a(locale, localx, localab, paramDouble);
          }
          localx = b(localnb.c);
        }
        if (i2 == 0)
        {
          if (localx != null) {
            a(locale, localx, localab, paramDouble);
          }
          localx = b(localnb.e);
        }
        if (i2 == 0)
        {
          if (localx != null) {
            a(locale, localx, localab, paramDouble);
          }
          localx = b(localnb.g);
          if (i2 != 0) {
            continue;
          }
        }
        if (localx != null) {
          a(locale, localx, localab, paramDouble);
        }
      }
      localw.f();
    } while (i1 == 0);
  }
  
  private void a(a.c.e parame, x paramx, ab paramab, double paramDouble)
  {
    int i11 = Cc;
    int i10 = Bc;
    a.c.e locale = (a.c.e)this.G.get(paramx);
    paramab.a(locale);
    a.c.ab localab = new a.c.ab(locale.l());
    localab.a(paramab);
    double d1;
    label143:
    a.c.d locald;
    x localx;
    int i3;
    label276:
    label278:
    int i4;
    label355:
    label356:
    double[] arrayOfDouble1;
    double[] arrayOfDouble2;
    int i7;
    label565:
    label614:
    y localy;
    label719:
    double d4;
    label1056:
    label1070:
    label1459:
    label1460:
    int i8;
    label1180:
    label1194:
    int i9;
    label1544:
    label1673:
    label1833:
    label1967:
    label1971:
    if (i11 == 0) {
      label1847:
      if (paramx.l())
      {
        if (i11 == 0) {}
        i2 = paramx.g() < this.p.o(parame).b ? 1 : 0;
        if (i2 != 0)
        {
          d1 = this.p.q(parame) - paramDouble;
          if (i11 != 0) {
            break label143;
          }
          if (i10 == 0) {}
        }
        else
        {
          d1 = this.p.q(parame) + this.p.t(parame) + paramDouble;
        }
        i1 = 0;
        localm = localab.l();
        label1593:
        label2117:
        label2118:
        label2120:
        do
        {
          if ((!localm.e()) || (i1 != 0)) {
            break;
          }
          locald = localm.a();
          localx = (x)this.H.get(locald.a(locale));
          if (i11 == 0)
          {
            if (localx != null)
            {
              i3 = 0;
              if (i11 == 0) {
                if (i2 != 0)
                {
                  if (i11 == 0) {}
                  i3 = localx.i() <= d1 ? 1 : 0;
                  if (i11 != 0) {
                    break label278;
                  }
                  if (i10 == 0) {
                    break label276;
                  }
                }
              }
              if (i11 == 0) {}
              i3 = localx.h() >= d1 ? 1 : 0;
              if ((i11 == 0) && (i3 != 0)) {
                break;
              }
              if (i11 == 0) {
                if (i2 != 0)
                {
                  if (i11 == 0) {}
                  i4 = localx.h() >= d1 ? 1 : 0;
                  if (i11 != 0) {
                    break label356;
                  }
                  if (i10 == 0) {
                    break label355;
                  }
                }
              }
              if (i11 == 0) {}
              i4 = localx.i() <= d1 ? 1 : 0;
              arrayOfDouble1 = new double[4];
              arrayOfDouble2 = new double[4];
              arrayOfDouble1[0] = localx.a.a;
              arrayOfDouble1[1] = this.p.p(parame);
              arrayOfDouble1[2] = (this.p.p(parame) + this.p.s(parame));
              arrayOfDouble1[3] = localx.b.a;
              arrayOfDouble2[0] = localx.a.b;
              arrayOfDouble2[1] = localx.a.b;
              arrayOfDouble2[2] = localx.b.b;
              arrayOfDouble2[3] = localx.b.b;
              if ((i11 != 0) || (i4 != 0))
              {
                int i5 = 0;
                i7 = 0;
                if (i11 == 0) {
                  if (localx.a.a < this.p.p(parame))
                  {
                    if (i11 != 0) {
                      break label565;
                    }
                    if (localx.b.a > this.p.p(parame)) {
                      i5 = 1;
                    }
                  }
                }
                if (i11 == 0) {
                  if (localx.b.a > this.p.p(parame) + this.p.s(parame))
                  {
                    if (i11 != 0) {
                      break label614;
                    }
                    if (localx.a.a < this.p.p(parame) + this.p.s(parame)) {
                      i7 = 1;
                    }
                  }
                }
                if (i11 == 0) {
                  if (this.Ac)
                  {
                    if (i11 == 0) {
                      if (i5 != 0)
                      {
                        if (i11 != 0) {
                          break label719;
                        }
                        if (i7 != 0)
                        {
                          localy = (y)a(localx, arrayOfDouble1, arrayOfDouble2, localx.l());
                          a(localx, (byte)8);
                          localx.a = new a.d.w(this.p.p(parame) + this.p.s(parame), localx.a.b);
                          if (i11 != 0) {
                            continue;
                          }
                          if (i10 == 0) {
                            break label2120;
                          }
                        }
                      }
                    }
                    if (i11 == 0) {
                      if (i5 != 0)
                      {
                        localx.b = new a.d.w(this.p.p(parame), localx.b.b);
                        a(localx, (byte)4);
                        if (i11 != 0) {
                          continue;
                        }
                        if (i10 == 0) {
                          break label2120;
                        }
                      }
                    }
                    if (i11 == 0) {
                      if (i7 != 0)
                      {
                        localx.a = new a.d.w(this.p.p(parame) + this.p.s(parame), localx.a.b);
                        a(localx, (byte)8);
                        if (i11 != 0) {
                          continue;
                        }
                        if (i10 == 0) {
                          break label2120;
                        }
                      }
                    }
                    if (i11 == 0)
                    {
                      if (this.zc)
                      {
                        localx.a = new a.d.w(this.p.p(parame), localx.a.b);
                        localx.b = new a.d.w(this.p.p(parame) + this.p.s(parame), localx.a.b);
                        if (i11 != 0) {
                          continue;
                        }
                        if (i10 == 0) {
                          break label2120;
                        }
                      }
                      localx.b = new a.d.w(localx.b.a, localx.a.b);
                    }
                    if (i11 != 0) {
                      continue;
                    }
                    if (i10 == 0) {
                      break label2120;
                    }
                  }
                }
                if (i11 == 0) {
                  if (i5 != 0)
                  {
                    localy = new y(localx.a.a, localx.a.b, this.p.p(parame), localx.b.b, localx.l());
                    if (i11 == 0)
                    {
                      if (i7 == 0)
                      {
                        e(localx, localy);
                        if (i11 != 0) {
                          break label1070;
                        }
                      }
                    }
                    else {
                      if (i10 == 0) {
                        break label1056;
                      }
                    }
                    c(localx, localy, (byte)8);
                    a(localx, localy, localx.l(), true);
                    a(localx, localy);
                  }
                }
                if (i11 == 0) {
                  if (i7 != 0)
                  {
                    localy = new y(this.p.p(parame) + this.p.s(parame), localx.a.b, localx.b.a, localx.b.b, localx.l());
                    if (i11 == 0)
                    {
                      if (i5 == 0)
                      {
                        e(localx, localy);
                        if (i11 != 0) {
                          break label1194;
                        }
                      }
                    }
                    else {
                      if (i10 == 0) {
                        break label1180;
                      }
                    }
                    c(localx, localy, (byte)4);
                    a(localx, localy, localx.l(), false);
                    a(localx, localy);
                  }
                }
                if (i11 == 0)
                {
                  if (this.zc)
                  {
                    localx.a = new a.d.w(this.p.p(parame), localx.a.b);
                    localx.b = new a.d.w(this.p.p(parame) + this.p.s(parame), localx.a.b);
                    if (i11 != 0) {
                      continue;
                    }
                    if (i10 == 0) {}
                  }
                  else
                  {
                    localx.b = new a.d.w(localx.b.a, localx.a.b);
                  }
                }
                else
                {
                  if (i11 != 0) {
                    continue;
                  }
                  if (i10 == 0) {}
                }
              }
              else
              {
                double d2 = 0.0D;
                d4 = 0.0D;
                if (i11 == 0) {
                  if (this.Ac)
                  {
                    if (i11 == 0)
                    {
                      if (i2 != 0)
                      {
                        arrayOfDouble2[1] = d1;
                        arrayOfDouble2[2] = localx.b.b;
                        if (i11 != 0) {
                          break label1460;
                        }
                        if (i10 == 0) {
                          break label1459;
                        }
                      }
                      arrayOfDouble2[1] = localx.a.b;
                      arrayOfDouble2[2] = d1;
                    }
                    if (i11 != 0) {
                      break label1460;
                    }
                    if (i10 == 0) {
                      break label1459;
                    }
                  }
                }
                if (i11 == 0)
                {
                  if (i2 != 0)
                  {
                    d2 = d1;
                    d4 = localx.b.b;
                  }
                }
                else
                {
                  if (i11 != 0) {
                    break label1460;
                  }
                  if (i10 == 0) {
                    break label1459;
                  }
                }
                d2 = localx.a.b;
                d4 = d1;
                i8 = 0;
                i9 = 0;
                if (i11 == 0) {
                  if (localx.a.a < this.p.p(parame))
                  {
                    if (i11 != 0) {
                      break label1544;
                    }
                    if (localx.b.a > this.p.p(parame)) {
                      i8 = 1;
                    }
                  }
                }
                if (i11 == 0) {
                  if (localx.b.a > this.p.p(parame) + this.p.s(parame))
                  {
                    if (i11 != 0) {
                      break label1593;
                    }
                    if (localx.a.a < this.p.p(parame) + this.p.s(parame)) {
                      i9 = 1;
                    }
                  }
                }
                if (i11 == 0) {
                  if (this.Ac)
                  {
                    if (i11 == 0) {
                      if (i8 != 0)
                      {
                        if (i11 != 0) {
                          break label1673;
                        }
                        if (i9 != 0)
                        {
                          localy = (y)a(localx, arrayOfDouble1, arrayOfDouble2, localx.l());
                          localy = (y)c(localx, arrayOfDouble1, arrayOfDouble2, localx.l());
                          if (i11 != 0) {
                            break label1971;
                          }
                          if (i10 == 0) {
                            break label1967;
                          }
                        }
                      }
                    }
                    if (i11 == 0) {
                      if (i8 != 0)
                      {
                        localy = (y)a(localx, arrayOfDouble1, arrayOfDouble2, localx.l());
                        if (i11 != 0) {
                          break label1971;
                        }
                        if (i10 == 0) {
                          break label1967;
                        }
                      }
                    }
                    if (i11 != 0) {
                      break label1971;
                    }
                    if (i9 == 0) {
                      break label1967;
                    }
                    localy = (y)c(localx, arrayOfDouble1, arrayOfDouble2, localx.l());
                    if (i11 != 0) {
                      break label1971;
                    }
                    if (i10 == 0) {
                      break label1967;
                    }
                  }
                }
                if (i11 == 0) {
                  if (i8 != 0)
                  {
                    localy = new y(localx.a.a, d2, this.p.p(parame), d4, localx.l());
                    if (i11 == 0)
                    {
                      if (i9 == 0)
                      {
                        e(localx, localy);
                        if (i11 != 0) {
                          break label1847;
                        }
                      }
                    }
                    else {
                      if (i10 == 0) {
                        break label1833;
                      }
                    }
                    c(localx, localy, (byte)8);
                    a(localx, localy, localx.l(), true);
                    a(localx, localy);
                  }
                }
                if (i11 == 0) {
                  if (i9 != 0)
                  {
                    localy = new y(this.p.p(parame) + this.p.s(parame), d2, localx.b.a, d4, localx.l());
                    if (i11 == 0)
                    {
                      if (i8 == 0)
                      {
                        e(localx, localy);
                        if (i11 != 0) {
                          break label1959;
                        }
                      }
                    }
                    else {
                      if (i10 == 0) {
                        break label1945;
                      }
                    }
                    c(localx, localy, (byte)4);
                    a(localx, localy, localx.l(), false);
                    a(localx, localy);
                  }
                }
                if (i11 == 0) {
                  if (this.Ac)
                  {
                    if (i11 == 0)
                    {
                      if (i2 != 0)
                      {
                        localx.b = new a.d.w(localx.b.a, d1);
                        if (i11 != 0) {
                          break label2118;
                        }
                        if (i10 == 0) {
                          break label2117;
                        }
                      }
                      localx.a = new a.d.w(localx.a.a, d1);
                    }
                    if (i11 != 0) {
                      break label2118;
                    }
                    if (i10 == 0) {
                      break label2117;
                    }
                  }
                }
                if (i11 == 0)
                {
                  if (i2 != 0) {
                    localx.b = new a.d.w(localx.b.a, d2);
                  }
                }
                else
                {
                  if (i11 != 0) {
                    break label2118;
                  }
                  if (i10 == 0) {
                    break label2117;
                  }
                }
                localx.a = new a.d.w(localx.a.a, d4);
                i1 = 1;
              }
            }
            c(locald.a(locale));
            localm.f();
          }
        } while (i10 == 0);
      }
    }
    label1945:
    label1959:
    if (i11 == 0) {}
    int i2 = paramx.f() < this.p.o(parame).a ? 1 : 0;
    if (i2 != 0)
    {
      d1 = this.p.p(parame) - paramDouble;
      if (i11 != 0) {
        break label2225;
      }
      if (i10 == 0) {}
    }
    else
    {
      d1 = this.p.p(parame) + this.p.s(parame) + paramDouble;
    }
    label2225:
    int i1 = 0;
    m localm = localab.l();
    label2358:
    label2360:
    label2647:
    label2800:
    do
    {
      if ((!localm.e()) || (i1 != 0)) {
        break;
      }
      locald = localm.a();
      localx = (x)this.H.get(locald.a(locale));
      if (i11 == 0)
      {
        if (localx != null)
        {
          i3 = 0;
          if (i11 == 0) {
            if (i2 != 0)
            {
              if (i11 == 0) {}
              i3 = localx.i() <= d1 ? 1 : 0;
              if (i11 != 0) {
                break label2360;
              }
              if (i10 == 0) {
                break label2358;
              }
            }
          }
          if (i11 == 0) {}
          i3 = localx.h() >= d1 ? 1 : 0;
          if ((i11 == 0) && (i3 != 0)) {
            break;
          }
          if (i11 == 0) {
            if (i2 != 0)
            {
              if (i11 == 0) {}
              i4 = localx.h() >= d1 ? 1 : 0;
              if (i11 != 0) {
                break label2438;
              }
              if (i10 == 0) {
                break label2437;
              }
            }
          }
          if (i11 == 0) {}
          i4 = localx.i() <= d1 ? 1 : 0;
          arrayOfDouble1 = new double[4];
          arrayOfDouble2 = new double[4];
          arrayOfDouble1[0] = localx.a.a;
          arrayOfDouble1[1] = localx.a.a;
          arrayOfDouble1[2] = localx.b.a;
          arrayOfDouble1[3] = localx.b.a;
          arrayOfDouble2[0] = localx.a.b;
          arrayOfDouble2[1] = this.p.q(parame);
          arrayOfDouble2[2] = (this.p.q(parame) + this.p.t(parame));
          arrayOfDouble2[3] = localx.b.b;
          if ((i11 != 0) || (i4 != 0))
          {
            int i6 = 0;
            i7 = 0;
            if (i11 == 0) {
              if (localx.a.b < this.p.q(parame))
              {
                if (i11 != 0) {
                  break label2647;
                }
                if (localx.b.b > this.p.q(parame)) {
                  i6 = 1;
                }
              }
            }
            if (i11 == 0) {
              if (localx.b.b > this.p.q(parame) + this.p.t(parame))
              {
                if (i11 != 0) {
                  break label2696;
                }
                if (localx.a.b < this.p.q(parame) + this.p.t(parame)) {
                  i7 = 1;
                }
              }
            }
            if (i11 == 0) {
              if (this.Ac)
              {
                if (i11 == 0) {
                  if (i6 != 0)
                  {
                    if (i11 != 0) {
                      break label2800;
                    }
                    if (i7 != 0)
                    {
                      localy = (y)a(localx, arrayOfDouble1, arrayOfDouble2, localx.l());
                      a(localx, (byte)1);
                      localx.a = new a.d.w(localx.a.a, this.p.q(parame) + this.p.t(parame));
                      if (i11 != 0) {
                        continue;
                      }
                      if (i10 == 0) {
                        break label4198;
                      }
                    }
                  }
                }
                if (i11 == 0) {
                  if (i6 != 0)
                  {
                    localx.b = new a.d.w(localx.b.a, this.p.q(parame));
                    a(localx, (byte)2);
                    if (i11 != 0) {
                      continue;
                    }
                    if (i10 == 0) {
                      break label4198;
                    }
                  }
                }
                if (i11 == 0) {
                  if (i7 != 0)
                  {
                    localx.a = new a.d.w(localx.a.a, this.p.q(parame) + this.p.t(parame));
                    a(localx, (byte)1);
                    if (i11 != 0) {
                      continue;
                    }
                    if (i10 == 0) {
                      break label4198;
                    }
                  }
                }
                if (i11 == 0)
                {
                  if (this.zc)
                  {
                    localx.a = new a.d.w(localx.a.a, this.p.q(parame));
                    localx.b = new a.d.w(localx.a.a, this.p.q(parame) + this.p.t(parame));
                    if (i11 != 0) {
                      continue;
                    }
                    if (i10 == 0) {
                      break label4198;
                    }
                  }
                  localx.b = new a.d.w(localx.a.a, localx.b.b);
                }
                if (i11 != 0) {
                  continue;
                }
                if (i10 == 0) {
                  break label4198;
                }
              }
            }
            if (i11 == 0) {
              if (i6 != 0)
              {
                localy = new y(localx.a.a, localx.a.b, localx.b.a, this.p.q(parame), localx.l());
                if (i11 == 0)
                {
                  if (i7 == 0)
                  {
                    e(localx, localy);
                    if (i11 != 0) {
                      break label3149;
                    }
                  }
                }
                else {
                  if (i10 == 0) {
                    break label3135;
                  }
                }
                c(localx, localy, (byte)1);
                a(localx, localy, localx.l(), true);
                a(localx, localy);
              }
            }
            if (i11 == 0) {
              if (i7 != 0)
              {
                localy = new y(localx.a.a, this.p.q(parame) + this.p.t(parame), localx.b.a, localx.b.b, localx.l());
                if (i11 == 0)
                {
                  if (i6 == 0)
                  {
                    e(localx, localy);
                    if (i11 != 0) {
                      break label3273;
                    }
                  }
                }
                else {
                  if (i10 == 0) {
                    break label3259;
                  }
                }
                c(localx, localy, (byte)2);
                a(localx, localy, localx.l(), false);
                a(localx, localy);
              }
            }
            if (i11 == 0)
            {
              if (this.zc)
              {
                localx.a = new a.d.w(localx.a.a, this.p.q(parame));
                localx.b = new a.d.w(localx.a.a, this.p.q(parame) + this.p.t(parame));
                if (i11 != 0) {
                  continue;
                }
                if (i10 == 0) {}
              }
              else
              {
                localx.b = new a.d.w(localx.a.a, localx.b.b);
              }
            }
            else
            {
              if (i11 != 0) {
                continue;
              }
              if (i10 == 0) {}
            }
          }
          else
          {
            double d3 = 0.0D;
            d4 = 0.0D;
            if (i11 == 0) {
              if (this.Ac)
              {
                if (i11 == 0)
                {
                  if (i2 != 0)
                  {
                    arrayOfDouble1[1] = d1;
                    arrayOfDouble1[2] = localx.b.a;
                    if (i11 != 0) {
                      break label3539;
                    }
                    if (i10 == 0) {
                      break label3538;
                    }
                  }
                  arrayOfDouble1[1] = localx.a.a;
                  arrayOfDouble1[2] = d1;
                }
                if (i11 != 0) {
                  break label3539;
                }
                if (i10 == 0) {
                  break label3538;
                }
              }
            }
            if (i11 == 0)
            {
              if (i2 != 0)
              {
                d3 = d1;
                d4 = localx.b.a;
              }
            }
            else
            {
              if (i11 != 0) {
                break label3539;
              }
              if (i10 == 0) {
                break label3538;
              }
            }
            d3 = localx.a.a;
            d4 = d1;
            i8 = 0;
            i9 = 0;
            if (i11 == 0) {
              if (localx.a.b < this.p.q(parame))
              {
                if (i11 != 0) {
                  break label3623;
                }
                if (localx.b.b > this.p.q(parame)) {
                  i8 = 1;
                }
              }
            }
            if (i11 == 0) {
              if (localx.b.b > this.p.q(parame) + this.p.t(parame))
              {
                if (i11 != 0) {
                  break label3672;
                }
                if (localx.a.b < this.p.q(parame) + this.p.t(parame)) {
                  i9 = 1;
                }
              }
            }
            if (i11 == 0) {
              if (this.Ac)
              {
                if (i11 == 0) {
                  if (i8 != 0)
                  {
                    if (i11 != 0) {
                      break label3752;
                    }
                    if (i9 != 0)
                    {
                      localy = (y)a(localx, arrayOfDouble1, arrayOfDouble2, localx.l());
                      localy = (y)c(localx, arrayOfDouble1, arrayOfDouble2, localx.l());
                      if (i11 != 0) {
                        break label4049;
                      }
                      if (i10 == 0) {
                        break label4045;
                      }
                    }
                  }
                }
                if (i11 == 0) {
                  if (i8 != 0)
                  {
                    localy = (y)a(localx, arrayOfDouble1, arrayOfDouble2, localx.l());
                    if (i11 != 0) {
                      break label4049;
                    }
                    if (i10 == 0) {
                      break label4045;
                    }
                  }
                }
                if (i11 != 0) {
                  break label4049;
                }
                if (i9 == 0) {
                  break label4045;
                }
                localy = (y)c(localx, arrayOfDouble1, arrayOfDouble2, localx.l());
                if (i11 != 0) {
                  break label4049;
                }
                if (i10 == 0) {
                  break label4045;
                }
              }
            }
            if (i11 == 0) {
              if (i8 != 0)
              {
                localy = new y(d3, localx.a.b, d4, this.p.q(parame), localx.l());
                if (i11 == 0)
                {
                  if (i9 == 0)
                  {
                    e(localx, localy);
                    if (i11 != 0) {
                      break label3925;
                    }
                  }
                }
                else {
                  if (i10 == 0) {
                    break label3911;
                  }
                }
                c(localx, localy, (byte)1);
                a(localx, localy, localx.l(), true);
                a(localx, localy);
              }
            }
            if (i11 == 0) {
              if (i9 != 0)
              {
                localy = new y(d3, this.p.q(parame) + this.p.t(parame), d4, localx.b.b, localx.l());
                if (i11 == 0)
                {
                  if (i8 == 0)
                  {
                    e(localx, localy);
                    if (i11 != 0) {
                      break label4037;
                    }
                  }
                }
                else {
                  if (i10 == 0) {
                    break label4023;
                  }
                }
                c(localx, localy, (byte)2);
                a(localx, localy, localx.l(), false);
                a(localx, localy);
              }
            }
            if (i11 == 0) {
              if (this.Ac)
              {
                if (i11 == 0)
                {
                  if (i2 != 0)
                  {
                    localx.b = new a.d.w(d1, localx.b.b);
                    if (i11 != 0) {
                      break label4196;
                    }
                    if (i10 == 0) {
                      break label4195;
                    }
                  }
                  localx.a = new a.d.w(d1, localx.a.b);
                }
                if (i11 != 0) {
                  break label4196;
                }
                if (i10 == 0) {
                  break label4195;
                }
              }
            }
            if (i11 == 0)
            {
              if (i2 != 0) {
                localx.b = new a.d.w(d3, localx.b.b);
              }
            }
            else
            {
              if (i11 != 0) {
                break label4196;
              }
              if (i10 == 0) {
                break label4195;
              }
            }
            localx.a = new a.d.w(d4, localx.a.b);
            i1 = 1;
          }
        }
        c(locald.a(locale));
        localm.f();
      }
    } while (i10 == 0);
    label2437:
    label2438:
    label2696:
    label3135:
    label3149:
    label3538:
    label3539:
    label3672:
    label4195:
    label4196:
    label4198:
    return;
  }
  
  private void a(z paramz, x paramx)
  {
    int i2 = Cc;
    int i1 = Bc;
    do
    {
      a.c.y localy = paramz.h();
      while (i1 == 0)
      {
        if (!localy.e()) {
          break;
        }
        if (i2 == 0) {
          if (localy.j() == paramx) {
            paramz.b(localy);
          }
        }
        localy.f();
      }
    } while (i2 != 0);
  }
  
  private void a(z paramz, x paramx, byte paramByte)
  {
    int i2 = Cc;
    int i1 = Bc;
    a.c.y localy = paramz.h();
    do
    {
      if (!localy.e()) {
        break;
      }
      nb localnb = (nb)this.E.get((a.c.e)localy.j());
      if (i2 == 0)
      {
        switch (paramByte)
        {
        case 1: 
          a(localnb.a, paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 10: 
          a(localnb.b, paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 2: 
          a(localnb.c, paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 20: 
          a(localnb.d, paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 8: 
          a(localnb.e, paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 80: 
          a(localnb.f, paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 4: 
          a(localnb.g, paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 40: 
          a(localnb.h, paramx);
        }
        localy.f();
      }
    } while (i1 == 0);
  }
  
  private void a(x paramx, byte paramByte)
  {
    int i2 = Cc;
    int i1 = Bc;
    nb localnb = (nb)this.D.get(paramx);
    if (localnb == null) {
      return;
    }
    if (i2 == 0) {}
    switch (paramByte)
    {
    case 1: 
      a(localnb.a, paramx, (byte)2);
      localnb.a.clear();
      a(localnb.b, paramx, (byte)20);
      localnb.b.clear();
      if (i2 == 0) {
        if (i1 == 0) {
          return;
        }
      }
    case 2: 
      a(localnb.c, paramx, (byte)1);
      localnb.c.clear();
      a(localnb.d, paramx, (byte)10);
      localnb.d.clear();
      if (i2 == 0) {
        if (i1 == 0) {
          return;
        }
      }
    case 8: 
      a(localnb.e, paramx, (byte)4);
      localnb.e.clear();
      a(localnb.f, paramx, (byte)40);
      localnb.f.clear();
      if (i2 == 0) {
        if (i1 == 0) {
          return;
        }
      }
    case 4: 
      a(localnb.g, paramx, (byte)8);
      localnb.g.clear();
      a(localnb.h, paramx, (byte)80);
      localnb.h.clear();
    }
  }
  
  private void a(x paramx1, x paramx2)
  {
    int i2 = Cc;
    int i1 = Bc;
    double[] arrayOfDouble = new double[2];
    double d1 = paramx2.j();
    double d2 = paramx2.k();
    a.c.e locale1 = (a.c.e)this.G.get(paramx1);
    a.c.e locale2 = this.x.i();
    this.H.a(locale2, paramx2);
    this.G.a(paramx2, locale2);
    m localm = locale1.l();
    label200:
    label206:
    do
    {
      if (!localm.e()) {
        break;
      }
      a.c.d locald1 = localm.a();
      a.c.e locale3 = locald1.a(locale1);
      x localx = (x)this.H.get(locale3);
      if ((i2 != 0) || (localx != null))
      {
        if (i2 == 0)
        {
          if (paramx1.l())
          {
            arrayOfDouble[0] = localx.a.b;
            arrayOfDouble[1] = localx.b.b;
          }
        }
        else
        {
          if (i2 != 0) {
            break label206;
          }
          if (i1 == 0) {
            break label200;
          }
        }
        arrayOfDouble[0] = localx.a.a;
        arrayOfDouble[1] = localx.b.a;
        if (i2 != 0) {
          continue;
        }
        if ((arrayOfDouble[0] < d2) && (arrayOfDouble[1] > d1))
        {
          a.c.d locald2 = this.x.a(locale2, locale3);
          this.F.a(locald2, this.F.get(locald1));
        }
      }
      localm.f();
    } while (i1 == 0);
  }
  
  private eb o()
  {
    int i3 = Cc;
    int i2 = Bc;
    this.ob = new a.i.mb();
    eb localeb;
    if (i3 == 0) {
      if (this.q == 0)
      {
        localeb = new eb(this.p, new a.c.ab());
        if (i3 != 0) {
          break label138;
        }
        if (i2 == 0) {
          break label127;
        }
      }
    }
    a.c.ab[] arrayOfab = C();
    this.y = arrayOfab[0];
    a.c.ab localab = arrayOfab[1];
    if (!this.ac)
    {
      localeb = new eb(this.p, localab);
      if (i3 != 0) {
        break label138;
      }
      if (i2 == 0) {}
    }
    else
    {
      localeb = new eb(this.p, new a.c.ab());
    }
    label127:
    this.ob.b();
    label138:
    if (i3 == 0) {}
    int i1 = this.Ab ? this.Bb : 5;
    if (i3 == 0) {}
    double d = this.r ? i1 * this.t : i1 * 2 * this.v;
    if (i3 == 0)
    {
      if (!L()) {
        d += M();
      }
      localeb.a(d);
    }
    if (i3 == 0) {}
    localeb.c(this.r ? 0.5D : this.v);
    localeb.a(true);
    localeb.a((byte)8);
    return localeb;
  }
  
  private void p()
  {
    int i2 = Cc;
    int i1 = Bc;
    Object localObject3 = this.p.w();
    a.c.d locald;
    do
    {
      if (!((m)localObject3).e()) {
        break;
      }
      locald = ((m)localObject3).a();
      if (i2 != 0) {
        break label193;
      }
      q localq1 = (q)this.J.get(locald);
      Object localObject1 = o.c(this.p, locald, true);
      localObject1 = o.a(this.p, locald, (Collection)localObject1, true);
      Object localObject2 = o.c(this.p, locald, false);
      if (i1 != 0) {
        break label190;
      }
      localObject2 = o.a(this.p, locald, (Collection)localObject2, false);
      if (i2 == 0)
      {
        if (locald.g())
        {
          if (i2 == 0) {
            if (localObject1 == null) {
              localObject1 = new ArrayList(1);
            }
          }
          if (localObject2 == null) {
            localObject2 = new ArrayList(1);
          }
          o.a(this.p, locald, (Collection)localObject1, (Collection)localObject2);
        }
        localq1.a(true, (Collection)localObject1);
        localq1.a(false, (Collection)localObject2);
        ((m)localObject3).f();
      }
    } while (i1 == 0);
    label190:
    label193:
    localObject3 = this.p.c(bd.a);
    if (localObject3 != null)
    {
      a.c.w localw = this.p.v();
      label358:
      do
      {
        do
        {
          if (!localw.e()) {
            break;
          }
          a.c.e locale = localw.d();
          if (i2 == 0)
          {
            if (((k)localObject3).get(locale) != null)
            {
              f_ localf_ = a(locale);
              m localm = locale.l();
              do
              {
                if (!localm.e()) {
                  break label358;
                }
                locald = localm.a();
                q localq2 = (q)this.J.get(locald);
                boolean bool = locald.e().equals(locale);
                Collection localCollection = localq2.c(bool);
                if (i1 != 0) {
                  break;
                }
                if (!a(localCollection))
                {
                  localq2.a(bool, localf_.a());
                  localq2.a(true, bool);
                }
                localm.f();
              } while (i1 == 0);
            }
            localw.f();
          }
        } while (i2 != 0);
      } while (i1 == 0);
    }
  }
  
  private static boolean a(Collection paramCollection)
  {
    int i2 = Cc;
    int i1 = Bc;
    if ((i2 != 0) || (paramCollection != null))
    {
      if (i2 != 0) {
        break label35;
      }
      if (!paramCollection.isEmpty()) {}
    }
    else
    {
      return false;
    }
    label35:
    Iterator localIterator = paramCollection.iterator();
    while (localIterator.hasNext())
    {
      ad localad = (ad)localIterator.next();
      if (i2 == 0)
      {
        if (!localad.b())
        {
          if (i2 != 0) {
            break label126;
          }
          if (localad.a(1))
          {
            if (i2 != 0) {
              break label126;
            }
            if (localad.a(2))
            {
              if (i2 != 0) {
                break label126;
              }
              if ((localad.a(4)) && (localad.a(8))) {
                continue;
              }
            }
          }
        }
        if (i2 != 0) {
          break label132;
        }
      }
      label126:
      if (i1 != 0) {
        break label132;
      }
      return true;
    }
    label132:
    return false;
  }
  
  private void q()
  {
    int i2 = Cc;
    int i1 = Bc;
    p();
    a.c.n localn = this.p.C();
    m localm = this.y.l();
    a.c.d locald;
    do
    {
      do
      {
        if (!localm.e()) {
          break;
        }
        locald = localm.a();
        b(locald, true);
        b(locald, false);
        localn.a(locald, true);
        localm.f();
        if (i2 != 0) {
          break label106;
        }
        if (i1 != 0) {
          break label100;
        }
      } while (i1 == 0);
    } while (i2 != 0);
    localm = this.p.w();
    label100:
    label106:
    do
    {
      if (!localm.e()) {
        break;
      }
      locald = localm.a();
      if ((i2 == 0) && (i1 != 0)) {
        return;
      }
      if (i2 == 0)
      {
        if (!localn.getBool(locald))
        {
          d(locald, true);
          d(locald, false);
        }
        localm.f();
      }
    } while (i1 == 0);
    if (i2 == 0) {
      this.p.a(localn);
    }
  }
  
  private void b(a.c.d paramd, boolean paramBoolean)
  {
    int i3 = Cc;
    int i2 = Bc;
    q localq = (q)this.J.get(paramd);
    a.c.e locale = paramBoolean ? paramd.e() : paramd.f();
    Collection localCollection = localq.c(paramBoolean);
    z localz = new z();
    if (((i3 != 0) || (localCollection != null)) && ((i3 != 0) || (!localCollection.isEmpty())))
    {
      int i1 = 1;
      Iterator localIterator = localCollection.iterator();
      label475:
      do
      {
        do
        {
          ad localad;
          double d;
          x localx;
          do
          {
            do
            {
              do
              {
                if (!localIterator.hasNext()) {
                  break label478;
                }
                localad = (ad)localIterator.next();
                if (i2 != 0) {
                  break label485;
                }
                if (!localad.b()) {
                  break;
                }
                if (i3 == 0) {
                  if (localad.a(1))
                  {
                    d = this.p.m(locale) + localad.c();
                    localx = a(locale, d, (byte)1);
                    if ((i3 != 0) || (localx != null))
                    {
                      ((y)localx).a(paramd, d, (byte)2, paramBoolean);
                      localz.add(new q.a_(localx, localad));
                    }
                  }
                }
                if (i3 == 0) {
                  if (localad.a(2))
                  {
                    d = this.p.m(locale) + localad.c();
                    localx = a(locale, d, (byte)2);
                    if ((i3 != 0) || (localx != null))
                    {
                      ((y)localx).a(paramd, d, (byte)1, paramBoolean);
                      localz.add(new q.a_(localx, localad));
                    }
                  }
                }
                if (i3 == 0) {
                  if (localad.a(4))
                  {
                    d = this.p.n(locale) + localad.d();
                    localx = a(locale, d, (byte)4);
                    if ((i3 != 0) || (localx != null))
                    {
                      ((y)localx).a(paramd, d, (byte)8, paramBoolean);
                      localz.add(new q.a_(localx, localad));
                    }
                  }
                }
              } while (i3 != 0);
            } while (!localad.a(8));
            d = this.p.n(locale) + localad.d();
            localx = a(locale, d, (byte)8);
          } while ((i3 == 0) && (localx == null));
          ((y)localx).a(paramd, d, (byte)4, paramBoolean);
          localz.add(new q.a_(localx, localad));
          if (i3 != 0) {
            break label475;
          }
        } while (i2 == 0);
        i1 = 0;
      } while (i2 == 0);
      label478:
      if ((i3 == 0) && (i1 != 0))
      {
        label485:
        if (i3 != 0) {
          break label525;
        }
        if (localz.isEmpty()) {
          this.Ob.add(paramd);
        }
      }
      if ((i3 != 0) || ((i2 != 0) && (!localz.isEmpty()))) {
        label525:
        localq.a(paramBoolean, localz);
      }
    }
  }
  
  private void d(a.c.d paramd, boolean paramBoolean)
  {
    int i1 = Cc;
    q localq = (q)this.J.get(paramd);
    Collection localCollection = localq.c(paramBoolean);
    if (((i1 != 0) || (localCollection != null)) && ((i1 != 0) || ((localCollection.size() == 1) && (((ad)localCollection.iterator().next()).b())))) {
      localq.b(paramBoolean, true);
    }
  }
  
  private void r()
  {
    int i2 = Cc;
    int i1 = Bc;
    this.eb = 0;
    this.fb = 0;
    this.db = 0;
    this.rb = new a.i.mb(false);
    this.qb = new a.i.mb();
    q();
    mb localmb = new mb(this.p, this.y, this);
    a.c.ab localab = localmb.a();
    m localm = localab.l();
    do
    {
      if (!localm.e()) {
        break;
      }
      a.c.d locald = localm.a();
      a(locald);
      localm.f();
      if ((i2 == 0) && (i1 != 0)) {
        return;
      }
    } while (i1 == 0);
    if (i2 == 0) {
      this.qb.b();
    }
  }
  
  private a.c.ab a(a.c.d paramd, a.c.e parame1, a.c.e parame2, boolean paramBoolean)
  {
    int i4 = Cc;
    int i3 = Bc;
    a.c.ab localab = new a.c.ab();
    q localq = (q)this.J.get(paramd);
    Collection localCollection = localq.c(paramBoolean);
    if ((i4 != 0) || (localCollection != null))
    {
      if (i4 != 0) {
        break label218;
      }
      if (!localCollection.isEmpty()) {}
    }
    else
    {
      nb localnb;
      if (i4 == 0)
      {
        if (this.Qb == 2)
        {
          localnb = (nb)this.E.get(parame1);
          a(localnb.e, parame2, localab, null);
          if (i4 != 0) {
            break label2199;
          }
          a(localnb.g, parame2, localab, null);
          if (i3 == 0) {
            break label2198;
          }
        }
        if (i4 != 0) {}
      }
      else
      {
        if (this.Qb == 1)
        {
          localnb = (nb)this.E.get(parame1);
          a(localnb.a, parame2, localab, null);
          if (i4 != 0) {
            break label2199;
          }
          a(localnb.c, parame2, localab, null);
          if (i3 == 0) {
            break label2198;
          }
        }
        if (i4 != 0) {
          break label2199;
        }
        a(parame1, parame2, localab);
      }
      if (i3 == 0) {
        break label2198;
      }
    }
    label218:
    if (i4 == 0) {
      if (this.Qb != 1)
      {
        if (i4 != 0) {
          break label861;
        }
        if (this.Qb != 3) {
          break label860;
        }
      }
    }
    if (i4 == 0) {
      if (paramBoolean)
      {
        if (i4 != 0) {
          break label347;
        }
        if (this.p.q(paramd.f()) + this.p.t(paramd.f()) < this.p.q(paramd.e())) {
          break label346;
        }
      }
    }
    if ((i4 != 0) || (!paramBoolean)) {
      if (i4 != 0) {}
    }
    label346:
    label347:
    int i1 = this.p.q(paramd.e()) + this.p.t(paramd.e()) < this.p.q(paramd.f()) ? 1 : 0;
    if (i4 == 0) {
      if (!paramBoolean)
      {
        if (i4 != 0) {
          break label460;
        }
        if (this.p.q(paramd.f()) + this.p.t(paramd.f()) < this.p.q(paramd.e())) {
          break label459;
        }
      }
    }
    if ((i4 != 0) || (paramBoolean)) {
      if (i4 != 0) {}
    }
    label459:
    label460:
    int i2 = this.p.q(paramd.e()) + this.p.t(paramd.e()) < this.p.q(paramd.f()) ? 1 : 0;
    Object localObject2;
    Object localObject3;
    label595:
    Object localObject5;
    a.c.d locald;
    if ((i4 != 0) || ((i1 != 0) || (i2 != 0)))
    {
      localObject2 = localq.f(paramBoolean);
      if (i4 == 0) {
        if (localObject2 != null)
        {
          localObject3 = ((z)localObject2).h();
          label655:
          do
          {
            if (!((a.c.y)localObject3).e()) {
              break;
            }
            localObject4 = (q.a_)((a.c.y)localObject3).j();
            if (i4 != 0) {
              break label865;
            }
            if (i3 != 0) {
              break label864;
            }
            if (i1 != 0)
            {
              if (i4 != 0) {
                break label595;
              }
              if (((q.a_)localObject4).b.a(1)) {}
            }
            else
            {
              if (i4 != 0) {
                continue;
              }
              if (i2 == 0) {
                break label655;
              }
              if (i4 != 0) {
                continue;
              }
              if (!((q.a_)localObject4).b.a(2)) {
                break label655;
              }
            }
            if (i4 == 0)
            {
              if (a(parame1, (q.a_)localObject4))
              {
                localObject5 = (a.c.e)this.G.get(((q.a_)localObject4).a);
                locald = this.x.a(parame2, (a.c.e)localObject5);
                this.Pb.put(locald, ((q.a_)localObject4).b);
                localab.add(locald);
              }
              ((a.c.y)localObject3).f();
            }
          } while (i3 == 0);
        }
      }
      localObject3 = (nb)this.E.get(parame1);
      if (i4 == 0)
      {
        localObject4 = localCollection.iterator();
        label800:
        do
        {
          do
          {
            do
            {
              do
              {
                do
                {
                  if (!((Iterator)localObject4).hasNext()) {
                    break;
                  }
                  localObject5 = (ad)((Iterator)localObject4).next();
                } while (((ad)localObject5).b());
                if ((i4 != 0) || (i4 != 0)) {
                  break label865;
                }
                if (i3 != 0) {
                  break label864;
                }
                if (i1 == 0) {
                  break;
                }
                if (i4 != 0) {
                  break label800;
                }
                if (!((ad)localObject5).a(1)) {
                  break;
                }
                if (i4 != 0) {
                  break label800;
                }
                if (!a(parame1, 1)) {
                  break;
                }
                a(((nb)localObject3).a, parame2, localab, (ad)localObject5);
              } while ((i4 == 0) && (i3 == 0));
            } while (((i4 == 0) && (i2 == 0)) || ((i4 == 0) && (!((ad)localObject5).a(2))));
            if (i4 != 0) {
              break;
            }
          } while (!a(parame1, 2));
          if (i4 != 0) {
            break label861;
          }
          a(((nb)localObject3).c, parame2, localab, (ad)localObject5);
        } while (i3 == 0);
      }
    }
    else
    {
      label860:
      label861:
      label864:
      label865:
      if ((i4 == 0) && ((this.Qb != 2) && ((i4 == 0) && (this.Qb != 3)))) {
        break label1499;
      }
      if (i4 == 0) {
        if (paramBoolean)
        {
          if (i4 != 0) {
            break label993;
          }
          if (this.p.p(paramd.f()) + this.p.s(paramd.f()) < this.p.p(paramd.e())) {
            break label992;
          }
        }
      }
      if ((i4 != 0) || (!paramBoolean)) {
        if (i4 != 0) {}
      }
      label992:
      label993:
      i1 = this.p.p(paramd.e()) + this.p.s(paramd.e()) < this.p.p(paramd.f()) ? 1 : 0;
      if (i4 == 0) {
        if (!paramBoolean)
        {
          if (i4 != 0) {
            break label1106;
          }
          if (this.p.p(paramd.f()) + this.p.s(paramd.f()) < this.p.p(paramd.e())) {
            break label1105;
          }
        }
      }
      if ((i4 != 0) || (paramBoolean)) {
        if (i4 != 0) {}
      }
      label1105:
      label1106:
      i2 = this.p.p(paramd.e()) + this.p.s(paramd.e()) < this.p.p(paramd.f()) ? 1 : 0;
      if ((i4 == 0) && ((i1 == 0) && (i2 == 0))) {
        break label1499;
      }
      localObject2 = localq.f(paramBoolean);
      if (i4 == 0) {
        label1297:
        if (localObject2 != null)
        {
          localObject3 = ((z)localObject2).h();
          label1237:
          do
          {
            if (!((a.c.y)localObject3).e()) {
              break;
            }
            localObject4 = (q.a_)((a.c.y)localObject3).j();
            if (i3 != 0) {
              break label2202;
            }
            if (i1 != 0)
            {
              if (i4 != 0) {
                break label1237;
              }
              if (((q.a_)localObject4).b.a(8)) {}
            }
            else
            {
              if (i4 != 0) {
                continue;
              }
              if (i2 == 0) {
                break label1297;
              }
              if (i4 != 0) {
                continue;
              }
              if (!((q.a_)localObject4).b.a(4)) {
                break label1297;
              }
            }
            if (i4 == 0)
            {
              if (a(parame1, (q.a_)localObject4))
              {
                localObject5 = (a.c.e)this.G.get(((q.a_)localObject4).a);
                locald = this.x.a(parame2, (a.c.e)localObject5);
                this.Pb.put(locald, ((q.a_)localObject4).b);
                localab.add(locald);
              }
              ((a.c.y)localObject3).f();
            }
          } while (i3 == 0);
        }
      }
      localObject3 = (nb)this.E.get(parame1);
      if (i4 != 0) {
        break label2259;
      }
    }
    Object localObject4 = localCollection.iterator();
    label1439:
    do
    {
      do
      {
        do
        {
          do
          {
            do
            {
              do
              {
                if (!((Iterator)localObject4).hasNext()) {
                  break;
                }
                localObject5 = (ad)((Iterator)localObject4).next();
              } while (((ad)localObject5).b());
              if ((i4 != 0) || (i3 != 0)) {
                break label2202;
              }
              if (i1 == 0) {
                break;
              }
              if (i4 != 0) {
                break label1439;
              }
              if (!((ad)localObject5).a(8)) {
                break;
              }
              if (i4 != 0) {
                break label1439;
              }
              if (!a(parame1, 8)) {
                break;
              }
              a(((nb)localObject3).e, parame2, localab, (ad)localObject5);
            } while ((i4 == 0) && (i3 == 0));
          } while (((i4 == 0) && (i2 == 0)) || ((i4 == 0) && (!((ad)localObject5).a(4))));
          if (i4 != 0) {
            break;
          }
        } while (!a(parame1, 4));
        a(((nb)localObject3).g, parame2, localab, (ad)localObject5);
      } while (i4 != 0);
    } while (i3 == 0);
    label1499:
    z localz = new z();
    Object localObject1;
    if (i4 == 0) {
      label1811:
      if (localab.isEmpty())
      {
        localObject1 = localq.f(paramBoolean);
        if (i4 == 0) {
          if (localObject1 != null)
          {
            localObject2 = ((z)localObject1).h();
            do
            {
              if (!((a.c.y)localObject2).e()) {
                break;
              }
              localObject3 = (q.a_)((a.c.y)localObject2).j();
              localz.add(localObject3);
              if (i3 != 0) {
                break label1905;
              }
              if (a(parame1, (q.a_)localObject3))
              {
                localObject4 = (a.c.e)this.G.get(((q.a_)localObject3).a);
                localObject5 = this.x.a(parame2, (a.c.e)localObject4);
                this.Pb.put(localObject5, ((q.a_)localObject3).b);
                localab.add(localObject5);
              }
              ((a.c.y)localObject2).f();
            } while (i3 == 0);
          }
        }
        localObject2 = (nb)this.E.get(parame1);
        if (i4 != 0) {
          break label2198;
        }
        localObject3 = localCollection.iterator();
        label1768:
        do
        {
          do
          {
            do
            {
              do
              {
                do
                {
                  if (!((Iterator)localObject3).hasNext()) {
                    break;
                  }
                  localObject4 = (ad)((Iterator)localObject3).next();
                } while (((ad)localObject4).b());
                if ((i4 != 0) || (i3 != 0)) {
                  break label1905;
                }
                if (((ad)localObject4).a(1))
                {
                  if (i4 != 0) {
                    break label1768;
                  }
                  if (a(parame1, 1)) {
                    a(((nb)localObject2).a, parame2, localab, (ad)localObject4);
                  }
                }
                if (i4 == 0) {
                  if (((ad)localObject4).a(2))
                  {
                    if (i4 != 0) {
                      break label1811;
                    }
                    if (a(parame1, 2)) {
                      a(((nb)localObject2).c, parame2, localab, (ad)localObject4);
                    }
                  }
                }
                if (i4 == 0) {
                  if (((ad)localObject4).a(8))
                  {
                    if (i4 != 0) {
                      continue;
                    }
                    if (a(parame1, 8)) {
                      a(((nb)localObject2).e, parame2, localab, (ad)localObject4);
                    }
                  }
                }
              } while ((i4 == 0) && (!((ad)localObject4).a(4)));
              if (i4 != 0) {
                break;
              }
            } while (!a(parame1, 4));
            a(((nb)localObject2).g, parame2, localab, (ad)localObject4);
          } while (i4 != 0);
        } while (i3 == 0);
      }
    }
    if (localab.isEmpty())
    {
      label1905:
      localObject1 = localz.h();
      do
      {
        if (!((a.c.y)localObject1).e()) {
          break;
        }
        localObject2 = (q.a_)((a.c.y)localObject1).j();
        localObject3 = (a.c.e)this.G.get(((q.a_)localObject2).a);
        localObject4 = this.x.a(parame2, (a.c.e)localObject3);
        if (i4 != 0) {
          break label2199;
        }
        this.Pb.put(localObject4, ((q.a_)localObject2).b);
        localab.add(localObject4);
        ((a.c.y)localObject1).f();
        if (i3 != 0) {
          break label2198;
        }
      } while (i3 == 0);
      localObject1 = (nb)this.E.get(parame1);
      if (i4 == 0)
      {
        localObject2 = localCollection.iterator();
        do
        {
          do
          {
            do
            {
              if (!((Iterator)localObject2).hasNext()) {
                break;
              }
              localObject3 = (ad)((Iterator)localObject2).next();
            } while (((ad)localObject3).b());
            if ((i4 != 0) || (i3 != 0)) {
              break label2202;
            }
            if (((ad)localObject3).a(1)) {
              a(((nb)localObject1).a, parame2, localab, (ad)localObject3);
            }
            if (i4 == 0) {
              if (((ad)localObject3).a(2)) {
                a(((nb)localObject1).c, parame2, localab, (ad)localObject3);
              }
            }
            if (i4 == 0) {
              if (((ad)localObject3).a(8)) {
                a(((nb)localObject1).e, parame2, localab, (ad)localObject3);
              }
            }
            if (i4 != 0) {
              break;
            }
          } while (!((ad)localObject3).a(4));
          if (i4 != 0) {
            break label2199;
          }
          a(((nb)localObject1).g, parame2, localab, (ad)localObject3);
        } while (i3 == 0);
      }
    }
    label2198:
    label2199:
    if (!this.Jb) {
      label2202:
      if (i4 == 0)
      {
        if (this.Kb)
        {
          if (i4 != 0) {
            break label2261;
          }
          if (this.Ib) {}
        }
        else
        {
          if (i4 != 0) {
            break label2265;
          }
        }
      }
      else {
        if (!this.Hb) {
          break label2264;
        }
      }
    }
    if (i4 == 0)
    {
      a(localab, parame1, parame2, paramd, 1.0D, 0.5D);
      label2259:
      label2261:
      if (i3 == 0) {}
    }
    else
    {
      label2264:
      label2265:
      a(localab, 1.0D);
    }
    return localab;
  }
  
  private static boolean a(a.d.n paramn, double paramDouble)
  {
    if (Cc == 0) {}
    return Math.abs(paramn.d().a - paramn.e().a) < paramDouble;
  }
  
  private static boolean a(a.d.n paramn, boolean paramBoolean)
  {
    int i1 = Cc;
    if (i1 == 0) {
      if (paramBoolean)
      {
        if (i1 == 0) {}
        return paramn.d().b < paramn.e().b;
      }
    }
    if (i1 == 0) {}
    return paramn.d().a < paramn.e().a;
  }
  
  private boolean a(a.c.e parame, int paramInt)
  {
    int i1 = Cc;
    f_ localf_ = (f_)this.vb.get(parame);
    if (i1 == 0) {
      if (localf_ == null) {
        return true;
      }
    }
    if (i1 == 0) {}
    return localf_.a(paramInt) > localf_.c(paramInt).size();
  }
  
  private boolean a(a.c.e parame, q.a_ parama_)
  {
    int i4 = Cc;
    int i3 = Bc;
    ad localad = parama_.b;
    if (i4 == 0) {
      if (!localad.b()) {
        return a(parame, localad.a());
      }
    }
    f_ localf_ = (f_)this.vb.get(parame);
    if (i4 == 0) {
      if (localf_ == null) {
        return true;
      }
    }
    z localz = localf_.c(localad.a());
    int i1 = localf_.c(localad.c(), localad.d());
    if (i4 == 0) {
      if (i1 == -1)
      {
        if (i4 == 0) {
          if (!a(parame, localad.a())) {
            return false;
          }
        }
        i1 = 1;
      }
    }
    int i2 = 0;
    a.c.y localy = localz.h();
    do
    {
      if (!localy.e()) {
        break;
      }
      a.d.w localw = (a.d.w)localy.j();
      if (i3 != 0) {
        break label218;
      }
      if (a.d.w.a(localw.a, localw.b, localad.c(), localad.d()) < 2.0D)
      {
        i2++;
        if (i4 != 0) {
          continue;
        }
        if (i2 >= i1) {
          return false;
        }
      }
      localy.f();
    } while (i3 == 0);
    label218:
    return true;
  }
  
  private f_ a(a.c.e parame)
  {
    int i1 = Cc;
    if (i1 == 0) {
      if (this.vb.get(parame) == null)
      {
        k localk = this.p.c(bd.a);
        f_ localf_;
        if ((i1 != 0) || ((localk != null) && (localk.get(parame) != null)))
        {
          localf_ = new f_((bd)localk.get(parame));
          if (i1 != 0) {
            break label101;
          }
          if (Bc == 0) {}
        }
        else
        {
          localf_ = new f_();
        }
        this.vb.a(parame, localf_);
        label101:
        return localf_;
      }
    }
    return (f_)this.vb.get(parame);
  }
  
  private void a(a.c.d paramd, a.f.o paramo)
  {
    int i2 = Cc;
    int i1 = Bc;
    a.d.y localy = paramo.n(paramd);
    f_ localf_1 = a(paramd.e());
    a.d.n localn1 = localy.a(0);
    v localv1;
    if (i2 == 0) {
      if (a(localn1, 0.01D))
      {
        if (a(localn1, true))
        {
          localv1 = localf_1.a(paramo.p(paramd), 2);
          if (i2 != 0) {
            break label162;
          }
          if (i1 == 0) {
            break label150;
          }
        }
        localv1 = localf_1.a(paramo.p(paramd), 1);
        if (i2 != 0) {
          break label162;
        }
        if (i1 == 0) {
          break label150;
        }
      }
    }
    if (a(localn1, false))
    {
      localv1 = localf_1.a(paramo.p(paramd), 4);
      if (i2 != 0) {
        break label162;
      }
      if (i1 == 0) {}
    }
    else
    {
      localv1 = localf_1.a(paramo.p(paramd), 8);
    }
    label150:
    this.tb.a(paramd, localv1);
    label162:
    f_ localf_2 = a(paramd.f());
    a.d.n localn2 = localy.a(localy.j() - 2);
    v localv2;
    if (i2 == 0) {
      if (a(localn2, 0.01D))
      {
        if (a(localn2, true))
        {
          localv2 = localf_2.a(paramo.q(paramd), 1);
          if (i2 != 0) {
            return;
          }
          if (i1 == 0) {
            break label301;
          }
        }
        localv2 = localf_2.a(paramo.q(paramd), 2);
        if (i2 != 0) {
          return;
        }
        if (i1 == 0) {
          break label301;
        }
      }
    }
    if (a(localn2, false))
    {
      localv2 = localf_2.a(paramo.q(paramd), 8);
      if (i2 != 0) {
        return;
      }
      if (i1 == 0) {}
    }
    else
    {
      localv2 = localf_2.a(paramo.q(paramd), 4);
    }
    label301:
    this.ub.a(paramd, localv2);
  }
  
  private void b(a.c.d paramd, a.f.o paramo)
  {
    int i2 = Cc;
    int i1 = Bc;
    a.d.y localy = paramo.n(paramd);
    f_ localf_1 = a(paramd.e());
    a.d.n localn1 = localy.a(0);
    v localv1 = (v)this.tb.get(paramd);
    if (i2 == 0) {
      if (a(localn1, 0.01D))
      {
        if (i2 == 0)
        {
          if (a(localn1, true))
          {
            localf_1.a(localv1, 2);
            if (i2 != 0) {
              break label166;
            }
            if (i1 == 0) {
              break label155;
            }
          }
          localf_1.a(localv1, 1);
          if (i2 != 0) {
            break label166;
          }
        }
        if (i1 == 0) {
          break label155;
        }
      }
    }
    if (i2 == 0)
    {
      if (a(localn1, false))
      {
        localf_1.a(localv1, 4);
        if (i2 != 0) {
          break label166;
        }
      }
    }
    else {
      if (i1 == 0) {
        break label155;
      }
    }
    localf_1.a(localv1, 8);
    label155:
    this.tb.a(paramd, null);
    label166:
    f_ localf_2 = a(paramd.f());
    a.d.n localn2 = localy.a(localy.j() - 2);
    v localv2 = (v)this.ub.get(paramd);
    if (i2 == 0) {
      if (a(localn2, 0.01D))
      {
        if (i2 == 0)
        {
          if (a(localn2, true))
          {
            localf_2.a(localv2, 1);
            if (i2 != 0) {
              return;
            }
            if (i1 == 0) {
              break label310;
            }
          }
          localf_2.a(localv2, 2);
          if (i2 != 0) {
            return;
          }
        }
        if (i1 == 0) {
          break label310;
        }
      }
    }
    if (i2 == 0)
    {
      if (a(localn2, false))
      {
        localf_2.a(localv2, 8);
        if (i2 != 0) {
          return;
        }
      }
    }
    else {
      if (i1 == 0) {
        break label310;
      }
    }
    localf_2.a(localv2, 4);
    label310:
    this.ub.a(paramd, null);
  }
  
  private z a(a.c.d paramd, a.c.e parame1, a.c.e parame2)
  {
    int i3 = Cc;
    int i2 = Bc;
    a.c.e locale = paramd.e();
    boolean bool = true;
    if (i3 == 0) {}
    int i1 = !this.wb ? 1 : 0;
    q localq = (q)this.J.get(paramd);
    a.c.ab localab1 = a(paramd, locale, parame1, bool);
    a.c.ab localab2 = a(paramd, paramd.a(locale), parame2, !bool);
    z localz;
    if (bool)
    {
      localz = a(parame1, parame2, localq);
      if (i3 != 0) {
        break label128;
      }
      if (i2 == 0) {
        break label124;
      }
    }
    label124:
    do
    {
      do
      {
        localz = a(parame2, parame1, localq);
        if (i3 == 0)
        {
          if ((this.wb) && (localz == null))
          {
            if (i3 == 0)
            {
              if (this.r)
              {
                this.u /= 2;
                if (i3 != 0) {
                  break label237;
                }
                if (this.u < 2)
                {
                  this.u = 2;
                  i1 = 1;
                  if (i3 != 0) {
                    break label237;
                  }
                  if (i2 == 0) {}
                }
              }
              else
              {
                this.w = Math.floor(0.5D * this.w);
              }
            }
            else
            {
              if (i3 != 0) {
                break label237;
              }
              if (this.w < 2.0D)
              {
                this.w = 2.0D;
                i1 = 1;
              }
            }
            if (i3 != 0) {
              break label287;
            }
            if (i1 == 0) {
              A();
            }
          }
          a(parame1, localab1);
          localab1.clear();
          a(parame2, localab2);
          if (i3 != 0) {
            break label302;
          }
          localab2.clear();
          this.Pb.clear();
        }
        if (i1 == 0) {
          if (localz == null) {
            break;
          }
        }
      } while (i3 != 0);
    } while (i2 != 0);
    label128:
    label237:
    return localz;
  }
  
  private void a(a.c.d paramd)
  {
    int i3 = Cc;
    int i2 = Bc;
    this.z = paramd.e();
    this.A = paramd.f();
    this.B = paramd;
    a.c.e locale1 = this.x.i();
    a.c.e locale2 = this.x.i();
    q localq = (q)this.J.get(paramd);
    localq.p = (this.kc++);
    z localz = a(paramd, locale1, locale2);
    if (i3 == 0) {
      if ((localz == null) && ((i3 != 0) || (i())) && ((i3 != 0) || (!this.Rb)) && ((i3 != 0) || (!this.r)))
      {
        byte b = this.Qb;
        if (i3 == 0)
        {
          if (this.Qb == 3)
          {
            if (i3 == 0) {}
            int i1 = Math.abs(this.p.p(this.z) - this.p.p(this.A)) < Math.abs(this.p.q(this.z) - this.p.q(this.A)) ? 1 : 0;
            if (i3 == 0) {}
            this.Qb = (i1 != 0 ? 1 : 2);
            localz = a(paramd, locale1, locale2);
            if (i3 != 0) {
              break label353;
            }
            if (localz != null) {
              break label352;
            }
            if (i3 == 0) {}
            this.Qb = (i1 != 0 ? 2 : 1);
            if (i3 != 0) {
              break label353;
            }
            localz = a(paramd, locale1, locale2);
            if (i2 == 0) {
              break label352;
            }
          }
          if (i3 != 0) {}
        }
        else if (this.Qb != 1)
        {
          if ((i3 == 0) && (this.Qb != 2)) {
            break label352;
          }
        }
        if (i3 == 0) {}
        this.Qb = (this.Qb == 1 ? 2 : 1);
        localz = a(paramd, locale1, locale2);
        label352:
        label353:
        if (i3 == 0)
        {
          if (localz == null) {
            this.Qb = 0;
          }
        }
        else {
          localz = a(paramd, locale1, locale2);
        }
        this.Qb = b;
      }
    }
    if (localz != null)
    {
      this.eb += 1;
      try
      {
        a(paramd, localz, this.Zb);
        this.w = this.v;
        this.u = this.t;
        if ((i3 != 0) || (this.Tb)) {
          a(paramd, this.p);
        }
      }
      catch (IllegalStateException localIllegalStateException)
      {
        if (i3 != 0) {
          break label464;
        }
      }
      b(paramd);
      if (i2 == 0) {
        return;
      }
    }
    label464:
    b(paramd);
  }
  
  private void b(a.c.d paramd)
  {
    this.fb += 1;
    this.ec += 1;
    if (!this.xb)
    {
      z localz = new z();
      localz.add(this.p.r(paramd));
      localz.add(this.p.s(paramd));
      this.p.a(paramd, localz);
    }
    this.cc.a(paramd, true);
    this.dc.a(paramd, true);
  }
  
  private z a(a.c.e parame1, a.c.e parame2, q paramq)
  {
    int i3 = Cc;
    int i2 = Bc;
    a.c.ab localab1 = null;
    z localz = null;
    boolean bool1 = false;
    int i1 = 1;
    a.c.ab localab2 = null;
    label233:
    do
    {
      if (bool1) {
        break;
      }
      if ((i3 == 0) && (i2 != 0)) {
        break label418;
      }
      if (i1 >= 8) {
        break;
      }
      this.rb.a();
      localab1 = a(this.x, parame1, parame2, false, this.F, paramq);
      if (i3 == 0)
      {
        if (localab2 == null) {
          localab2 = localab1;
        }
        this.rb.b();
        this.db += 1;
      }
      localz = a(localab1, parame1);
      ad localad1 = null;
      ad localad2 = null;
      if ((i3 != 0) || (!localab1.isEmpty()))
      {
        localad1 = (ad)this.Pb.get(localab1.m());
        if (i3 == 0) {
          if (localad1 != null)
          {
            if (i3 != 0) {
              break label233;
            }
            if (localad1.b())
            {
              if (i3 != 0) {
                break label233;
              }
              if (localad1.b())
              {
                this.p.a(this.B, new a.d.w(localad1.c(), localad1.d()));
                paramq.b(true, true);
              }
            }
          }
        }
        localad2 = (ad)this.Pb.get(localab1.n());
        if (i3 != 0) {
          break label307;
        }
        if (localad2 != null)
        {
          if (i3 != 0) {
            break label307;
          }
          if (localad2.b())
          {
            if (i3 != 0) {
              break label307;
            }
            if (localad2.b())
            {
              this.p.b(this.B, new a.d.w(localad2.c(), localad2.d()));
              paramq.b(false, true);
            }
          }
        }
      }
      if ((i3 != 0) || (localad1 != null))
      {
        if (i3 != 0) {
          break label342;
        }
        if (localad1.b()) {}
      }
      else
      {
        if (i3 != 0) {
          break label342;
        }
      }
      boolean bool2 = paramq.d(true);
      if ((i3 != 0) || (localad2 != null))
      {
        if (i3 != 0) {
          break label385;
        }
        if (localad2.b()) {}
      }
      else
      {
        if (i3 != 0) {
          break label385;
        }
      }
      boolean bool3 = paramq.d(false);
      bool1 = a(localz, bool2, bool3);
      i1++;
    } while (i2 == 0);
    label307:
    label342:
    if ((i3 == 0) && (!bool1)) {
      return null;
    }
    label385:
    label418:
    return localz;
  }
  
  private void s()
  {
    int i2 = Cc;
    int i1 = Bc;
    double d1 = 1.7976931348623157E+308D;
    double d2 = 0.0D;
    double d3 = 1.7976931348623157E+308D;
    double d4 = 0.0D;
    a.c.w localw = this.x.v();
    if (localw.e()) {}
    label211:
    do
    {
      x localx = (x)this.H.get(localw.d());
      if ((i2 == 0) && (i1 != 0)) {
        return;
      }
      if ((i2 != 0) || (!localx.l()))
      {
        if (i2 == 0) {
          if (localx.a.a < d1) {
            d1 = localx.a.a;
          }
        }
        if (i2 == 0) {
          if (localx.a.b < d3) {
            d3 = localx.a.b;
          }
        }
        if (i2 == 0) {
          if (localx.b.a > d2) {
            d2 = localx.b.a;
          }
        }
        if (i2 != 0) {
          break label211;
        }
        if (localx.b.a > d4) {
          d4 = localx.b.b;
        }
      }
      localw.f();
      if (i1 == 0) {
        break;
      }
      this.fc = d1;
      this.gc = d2;
      this.hc = d3;
    } while (i2 != 0);
    this.ic = d4;
  }
  
  private void t()
  {
    int i2 = Cc;
    int i1 = Bc;
    double d1 = this.p.p(this.z);
    double d2 = this.p.p(this.A);
    double d3 = Math.min(d1, d2);
    a.c.e locale1;
    if (d3 == d1)
    {
      locale1 = this.z;
      if (i2 != 0) {
        break label105;
      }
      if (i1 == 0) {}
    }
    else
    {
      locale1 = this.A;
    }
    d1 += this.p.s(this.z);
    d2 += this.p.s(this.A);
    label105:
    double d5 = Math.max(d1, d2);
    a.c.e locale3;
    if (d5 == d1)
    {
      locale3 = this.z;
      if (i2 != 0) {
        break label168;
      }
      if (i1 == 0) {}
    }
    else
    {
      locale3 = this.A;
    }
    d1 = this.p.q(this.z);
    d2 = this.p.q(this.A);
    label168:
    double d4 = Math.min(d1, d2);
    a.c.e locale2;
    if (d4 == d1)
    {
      locale2 = this.z;
      if (i2 != 0) {
        break label237;
      }
      if (i1 == 0) {}
    }
    else
    {
      locale2 = this.A;
    }
    d1 += this.p.t(this.z);
    d2 += this.p.t(this.A);
    label237:
    double d6 = Math.max(d1, d2);
    if (d6 == d1)
    {
      if (i2 != 0) {
        break label274;
      }
      locale4 = this.z;
      if (i1 == 0) {
        break label276;
      }
    }
    label274:
    a.c.e locale4 = this.A;
    label276:
    a.d.w localw1 = new a.d.w(d3, d4);
    ab localab1 = new ab(localw1, this.H);
    a.d.w localw2 = new a.d.w(d5, d6);
    ab localab2 = new ab(localw2, this.H);
    Object localObject1 = this.x.v();
    if (((a.c.w)localObject1).e()) {}
    do
    {
      localObject2 = (y)this.H.get(((a.c.w)localObject1).d());
      if (i2 == 0)
      {
        if (localObject2 != null) {
          ((y)localObject2).a(0);
        }
        ((a.c.w)localObject1).f();
      }
      if (i1 == 0) {
        break;
      }
      localObject2 = null;
    } while (i2 != 0);
    localObject1 = (nb)this.E.get(locale1);
    Object localObject2 = b(((nb)localObject1).e);
    if (i2 == 0)
    {
      if (localObject2 != null) {
        a((x)localObject2, localab1);
      }
      localObject1 = (nb)this.E.get(locale2);
      localObject2 = null;
      localObject2 = b(((nb)localObject1).a);
    }
    if (i2 == 0)
    {
      if (localObject2 != null) {
        a((x)localObject2, localab1);
      }
      localObject1 = (nb)this.E.get(locale3);
      localObject2 = null;
      localObject2 = b(((nb)localObject1).g);
    }
    if (i2 == 0)
    {
      if (localObject2 != null) {
        a((x)localObject2, localab2);
      }
      if (i2 == 0)
      {
        localObject1 = (nb)this.E.get(locale4);
        localObject2 = null;
        localObject2 = b(((nb)localObject1).c);
      }
    }
    else if (localObject2 == null)
    {
      return;
    }
    a((x)localObject2, localab2);
  }
  
  private x b(z paramz)
  {
    int i2 = Cc;
    int i1 = Bc;
    double d1 = 0.0D;
    Object localObject = null;
    a.c.y localy = paramz.h();
    do
    {
      if (!localy.e()) {
        break;
      }
      x localx = (x)localy.j();
      if (i1 != 0) {
        break label88;
      }
      double d2 = localx.e();
      if (i2 == 0)
      {
        if (d2 > d1)
        {
          localObject = localx;
          d1 = d2;
        }
        localy.f();
      }
    } while (i1 == 0);
    label88:
    return localObject;
  }
  
  private void a(x paramx, ab paramab)
  {
    int i4 = Cc;
    int i3 = Bc;
    a.c.e locale = (a.c.e)this.G.get(paramx);
    paramab.a(locale);
    a.c.ab localab = new a.c.ab(locale.l());
    localab.a(paramab);
    int i1 = 0;
    m localm = localab.l();
    do
    {
      if (!localm.e()) {
        break;
      }
      a.c.d locald = localm.a();
      y localy = (y)this.H.get(locald.a(locale));
      if (i4 == 0)
      {
        if (localy != null)
        {
          int i2 = Math.max(i1, localy.s());
          localy.a(i2);
          i1 += 2;
        }
        localm.f();
      }
    } while (i3 == 0);
  }
  
  a.c.d[] a(int paramInt)
  {
    int i1 = Cc;
    if (i1 == 0)
    {
      if (this.uc != null)
      {
        if (i1 != 0) {
          break label89;
        }
        if (this.uc.length >= paramInt) {
          break label85;
        }
      }
      if (i1 != 0) {}
    }
    else if (this.uc == null)
    {
      if (i1 != 0) {
        break label86;
      }
      this.uc = new a.c.d[Math.max(paramInt + 20, 500)];
      if (Bc == 0) {
        break label85;
      }
    }
    this.uc = new a.c.d[Math.max(paramInt + 20, this.uc.length)];
    label85:
    label86:
    label89:
    return this.uc;
  }
  
  private boolean a(q paramq, boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3)
  {
    int i2 = Cc;
    int i1 = Bc;
    Collection localCollection = paramq.c(paramBoolean1);
    if ((i2 != 0) || (localCollection != null))
    {
      if (i2 != 0) {
        break label45;
      }
      if (!localCollection.isEmpty()) {}
    }
    else
    {
      return true;
    }
    label45:
    boolean bool = true;
    Iterator localIterator = localCollection.iterator();
    label150:
    label172:
    label210:
    label226:
    label228:
    label494:
    label496:
    do
    {
      ad localad;
      do
      {
        do
        {
          do
          {
            do
            {
              do
              {
                do
                {
                  do
                  {
                    if (!localIterator.hasNext()) {
                      break label618;
                    }
                    localad = (ad)localIterator.next();
                    if (i1 != 0) {
                      break label620;
                    }
                    if (!paramBoolean1) {
                      break label355;
                    }
                    if (i2 != 0) {
                      break label228;
                    }
                    if (!paramBoolean2) {
                      break label226;
                    }
                    if (i2 != 0) {
                      break label172;
                    }
                    if (!paramBoolean3) {
                      break;
                    }
                    if (i2 == 0) {
                      if (!localad.a(1))
                      {
                        if (i2 != 0) {
                          break label150;
                        }
                        if (!localad.a(4)) {
                          if (i2 != 0) {
                            break label150;
                          }
                        }
                      }
                    }
                    bool = localad.a(8);
                  } while ((i2 == 0) && (i1 == 0));
                  if (i2 == 0) {
                    if (!localad.a(2))
                    {
                      if (i2 != 0) {
                        break label210;
                      }
                      if (!localad.a(4)) {
                        if (i2 != 0) {
                          break label210;
                        }
                      }
                    }
                  }
                  bool = localad.a(8);
                } while ((i2 == 0) && (i1 == 0));
                if (i2 != 0) {
                  break label302;
                }
                if (!paramBoolean3) {
                  break;
                }
                if (i2 == 0) {
                  if (!localad.a(8))
                  {
                    if (i2 != 0) {
                      break label280;
                    }
                    if (!localad.a(1)) {
                      if (i2 != 0) {
                        break label280;
                      }
                    }
                  }
                }
                bool = localad.a(2);
              } while ((i2 == 0) && (i1 == 0));
              if (i2 == 0) {
                if (!localad.a(4))
                {
                  if (i2 != 0) {
                    break label339;
                  }
                  if (!localad.a(1)) {
                    if (i2 != 0) {
                      break label339;
                    }
                  }
                }
              }
              bool = localad.a(2);
            } while ((i2 == 0) && (i1 == 0));
            if (i2 != 0) {
              break label496;
            }
            if (!paramBoolean2) {
              break label494;
            }
            if (i2 != 0) {
              break label440;
            }
            if (!paramBoolean3) {
              break;
            }
            if (i2 == 0) {
              if (!localad.a(2))
              {
                if (i2 != 0) {
                  break label418;
                }
                if (!localad.a(4)) {
                  if (i2 != 0) {
                    break label418;
                  }
                }
              }
            }
            bool = localad.a(8);
          } while ((i2 == 0) && (i1 == 0));
          if (i2 == 0) {
            if (!localad.a(1))
            {
              if (i2 != 0) {
                break label478;
              }
              if (!localad.a(4)) {
                if (i2 != 0) {
                  break label478;
                }
              }
            }
          }
          bool = localad.a(8);
        } while ((i2 == 0) && (i1 == 0));
        if (i2 != 0) {
          break label570;
        }
        if (!paramBoolean3) {
          break;
        }
        if (i2 == 0) {
          if (!localad.a(4))
          {
            if (i2 != 0) {
              break label547;
            }
            if (!localad.a(1)) {
              if (i2 != 0) {
                break label547;
              }
            }
          }
        }
        bool = localad.a(2);
      } while ((i2 == 0) && (i1 == 0));
      if (i2 == 0) {
        if (!localad.a(8))
        {
          if (i2 != 0) {
            break label607;
          }
          if (!localad.a(1)) {
            if (i2 != 0) {
              break label607;
            }
          }
        }
      }
      bool = localad.a(2);
    } while (i1 == 0);
    label280:
    label302:
    label339:
    label355:
    label618:
    label620:
    return bool;
  }
  
  private a.c.ab a(a.c.q paramq, a.c.e parame1, a.c.e parame2, boolean paramBoolean, a.c.n paramn, q paramq1)
  {
    int i12 = Cc;
    int i11 = Bc;
    a.c.d locald1 = paramq1.a();
    if (i12 == 0) {}
    boolean bool1 = this.p.q(locald1.e()) > this.p.q(locald1.f());
    if (i12 == 0) {}
    boolean bool2 = this.p.p(locald1.e()) > this.p.p(locald1.f());
    double d1 = (i12 != 0) || ((bool1) || ((i12 != 0) || (a(paramq1, true, true, bool1)))) ? this.p.q(locald1.e()) : -1.797693134862316E+308D;
    double d2 = (i12 != 0) || ((!bool1) || ((i12 != 0) || (a(paramq1, true, true, bool1)))) ? this.p.q(locald1.e()) + this.p.t(locald1.e()) : 1.7976931348623157E+308D;
    double d3 = (i12 != 0) || ((!bool1) || ((i12 != 0) || (a(paramq1, false, true, bool1)))) ? this.p.q(locald1.f()) : -1.797693134862316E+308D;
    double d4 = (i12 != 0) || ((bool1) || ((i12 != 0) || (a(paramq1, false, true, bool1)))) ? this.p.q(locald1.f()) + this.p.t(locald1.f()) : 1.7976931348623157E+308D;
    double d5 = (i12 != 0) || ((bool2) || ((i12 != 0) || (a(paramq1, true, false, bool2)))) ? this.p.p(locald1.e()) : -1.797693134862316E+308D;
    double d6 = (i12 != 0) || ((!bool2) || ((i12 != 0) || (a(paramq1, true, false, bool2)))) ? this.p.p(locald1.e()) + this.p.s(locald1.e()) : 1.7976931348623157E+308D;
    double d7 = (i12 != 0) || ((!bool2) || ((i12 != 0) || (a(paramq1, false, false, bool2)))) ? this.p.p(locald1.f()) : -1.797693134862316E+308D;
    double d8 = (i12 != 0) || ((bool2) || ((i12 != 0) || (a(paramq1, false, false, bool2)))) ? this.p.p(locald1.f()) + this.p.s(locald1.f()) : 1.7976931348623157E+308D;
    a.c.ab localab1 = null;
    this.qc.a(0);
    this.rc.a((1.0D / 0.0D));
    this.sc.a((1.0D / 0.0D));
    this.tc.a(0.0D);
    Object localObject1 = null;
    Object localObject2 = null;
    double d11 = 1.0D;
    double d12 = 1.0D;
    if (i12 == 0) {
      if (this.Db)
      {
        if (i12 != 0) {
          break label621;
        }
        if (this.Eb)
        {
          d11 = this.Fb;
          d12 = 1.0D - d11;
        }
      }
    }
    label621:
    int i1 = 0;
    int i2 = 0;
    double d13 = (1.0D / 0.0D);
    double d14 = (1.0D / 0.0D);
    if (paramBoolean) {
      throw new IllegalStateException("No logic for directed graphs.");
    }
    a.c.x localx1 = a.i.db.a();
    a.i.a.h localh1 = new a.i.a.h(paramq.k(), localx1, localx1);
    a.c.x localx2 = a.i.db.a();
    a.i.a.h localh2 = new a.i.a.h(paramq.k(), localx2, localx2);
    localh1.a(parame1, 0.0D);
    this.qc.a(parame1, 64);
    localh2.a(parame2, 0.0D);
    this.qc.a(parame2, 16);
    double d10 = 0.0D;
    double d9 = 0.0D;
    if (i12 == 0) {
      if (this.yc) {
        t();
      }
    }
    a.d.w localw = d(this.B);
    double d15 = Math.max(Math.abs(localw.a - this.fc), Math.abs(localw.a - this.gc));
    double d16 = Math.max(Math.abs(localw.b - this.hc), Math.abs(localw.b - this.ic));
    double d17 = 0.0D;
    a.c.ab localab2 = new a.c.ab();
    label849:
    label1260:
    label2808:
    do
    {
      if (i1 != 0) {
        break;
      }
      if (i11 != 0) {
        break label4008;
      }
      int i3 = 0;
      a.c.e locale1;
      x localx3;
      double d18;
      a.c.e locale3;
      a.c.e locale4;
      a.c.e locale2;
      if (!localh1.d())
      {
        if (i12 == 0)
        {
          if (i3 != 0) {
            break label2393;
          }
          i3 = 1;
          if (i12 == 0) {
            d9 = localh1.c();
          }
        }
        else if (d9 + d10 > d13)
        {
          i2 = 1;
          if (i11 == 0) {
            break label2393;
          }
        }
        locale1 = (a.c.e)localh1.a();
        this.qc.a(locale1, 192);
        localx3 = (x)this.H.get(locale1);
        d18 = bool1 ? d2 : d1;
        if ((g()) && ((i12 != 0) || (localx3 != null)) && ((i12 != 0) || (localx3.l())))
        {
          x localx4 = localx3;
          locale3 = locale1;
          do
          {
            do
            {
              if (localx4 == null) {
                break;
              }
              if (i11 != 0) {
                break label1097;
              }
              if (!localx4.l()) {
                break;
              }
              locale3 = ((a.c.d)this.oc.get(locale3)).a(locale3);
              if (i12 == 0) {}
              localx4 = locale3 == null ? null : (x)this.H.get(locale3);
            } while (i11 == 0);
          } while (i12 != 0);
          if (localx4 != null) {
            d18 = bool1 ? localx4.h() : localx4.i();
          }
        }
        double d19 = bool2 ? d6 : d5;
        if (i12 == 0) {
          if ((h()) && ((i12 != 0) || (localx3 != null)) && ((i12 != 0) || (!localx3.l())))
          {
            x localx6 = localx3;
            locale4 = locale1;
            do
            {
              do
              {
                if (localx6 == null) {
                  break;
                }
                if (i11 != 0) {
                  break label1260;
                }
                if (localx6.l()) {
                  break;
                }
                locale4 = ((a.c.d)this.oc.get(locale4)).a(locale4);
                if (i12 == 0) {}
                localx6 = locale4 == null ? null : (x)this.H.get(locale4);
              } while (i11 == 0);
            } while (i12 != 0);
            if (localx6 != null) {
              d19 = bool2 ? localx6.h() : localx6.i();
            }
          }
        }
        if (this.Db) {
          if ((i12 != 0) || (localx3 != null))
          {
            boolean bool3 = localx3.l();
            d17 = bool3 ? d16 : d15;
          }
        }
        double d21 = 1.7976931348623157E+308D;
        double d23 = 0.0D;
        if (i12 == 0) {
          if ((this.Eb) && (localx3 != null)) {
            d23 = b(locale1);
          }
        }
        int i5 = 1;
        a.c.d locald2 = locale1.h();
        do
        {
          if (locald2 == null)
          {
            if (i5 == 0) {
              break label849;
            }
            if (i12 != 0) {
              break;
            }
            if (i11 != 0) {
              break label2395;
            }
            if (locale1.d() <= 0) {
              break label849;
            }
            i5 = 0;
            locald2 = locale1.i();
          }
          locale2 = locald2.a(locale1);
          int i7 = this.qc.getInt(locale2);
          x localx8 = (x)this.H.get(locale2);
          if (i12 == 0) {}
          int i9 = (!i()) || (localx8 == null) ? 1 : 0;
          if (i12 == 0) {
            if (i9 == 0)
            {
              if (i12 != 0) {
                break label1588;
              }
              if (g())
              {
                if (i12 == 0) {
                  if (localx8.l())
                  {
                    if (i12 != 0) {
                      break label1580;
                    }
                    if (!h()) {
                      break label1579;
                    }
                  }
                }
                if ((i12 != 0) || (!localx8.l()))
                {
                  if (i12 == 0) {
                    if (!bool1)
                    {
                      if (i12 != 0) {
                        break label1539;
                      }
                      if (localx8.h() >= d18)
                      {
                        if (i12 != 0) {
                          break label1580;
                        }
                        if (localx8.i() <= d4) {
                          break label1579;
                        }
                      }
                    }
                  }
                  if (((i12 != 0) || (bool1)) && ((i12 != 0) || (localx8.i() <= d18))) {
                    if (i12 != 0) {}
                  }
                }
                i9 = localx8.h() >= d3 ? 1 : 0;
              }
            }
          }
          if (i12 == 0) {
            if (i9 == 0)
            {
              if (i12 != 0) {
                break label1739;
              }
              if (h())
              {
                if (i12 == 0) {
                  if (!localx8.l())
                  {
                    if (i12 != 0) {
                      break label1731;
                    }
                    if (!g()) {
                      break label1730;
                    }
                  }
                }
                if ((i12 != 0) || (localx8.l()))
                {
                  if (i12 == 0) {
                    if (!bool2)
                    {
                      if (i12 != 0) {
                        break label1690;
                      }
                      if (localx8.h() >= d19)
                      {
                        if (i12 != 0) {
                          break label1731;
                        }
                        if (localx8.i() <= d8) {
                          break label1730;
                        }
                      }
                    }
                  }
                  if (((i12 != 0) || (bool2)) && ((i12 != 0) || (localx8.i() <= d19))) {
                    if (i12 != 0) {}
                  }
                }
                i9 = localx8.h() >= d7 ? 1 : 0;
              }
            }
          }
          if (i12 == 0) {
            if (i7 != 192)
            {
              if (i12 != 0) {
                break label2370;
              }
              if (i9 != 0)
              {
                double d25 = 0.0D;
                y localy1 = null;
                double d27 = paramn.getDouble(locald2);
                d25 = d9 + d27;
                double d29 = this.tc.getDouble(locald2);
                boolean bool6;
                double d31;
                double d33;
                if (i12 == 0) {
                  if ((this.Db) && ((i12 != 0) || (localx3 != null)) && ((i12 != 0) || (localx8 != null)))
                  {
                    bool6 = localx3.l();
                    d31 = bool6 ? localw.b : localw.a;
                    d33 = bool6 ? localx8.g() : localx8.f();
                    double d35 = d11 * (Math.abs(d31 - d33) / (2.0D * d17 + 1.0D));
                    d29 = d35;
                  }
                }
                if (i12 == 0) {
                  if ((this.Eb) && ((i12 != 0) || (localx3 != null)) && ((i12 != 0) || (localx8 != null)))
                  {
                    bool6 = localx3.l();
                    d31 = bool6 ? localx8.b.b - localx8.a.b : localx8.b.a - localx8.a.a;
                    d33 = d12 * ((d23 - d31) / (2.0D * d23 + 1.0D));
                    d29 += d33;
                  }
                }
                if ((i12 != 0) || (this.yc))
                {
                  localy1 = (y)this.H.get(locale2);
                  if (i12 != 0) {
                    break label2076;
                  }
                  if (localy1 != null) {
                    d29 += localy1.s();
                  }
                }
                d25 += d29;
                this.tc.a(locald2, d29);
                if (i12 != 0) {
                  break label2370;
                }
                switch (i7)
                {
                case 0: 
                  if (i12 == 0)
                  {
                    if (w()) {
                      a(locale2, locale1, this.nc, parame1, parame2, paramn);
                    }
                    localh1.a(locale2, d25);
                    this.rc.a(locale2, d25);
                    this.qc.a(locale2, 64);
                    this.oc.a(locale2, locald2);
                  }
                  if (i12 == 0) {
                    if (i11 == 0) {
                      break;
                    }
                  }
                  break;
                case 64: 
                  if (i12 == 0) {
                    if (d25 < localh1.b(locale2))
                    {
                      localh1.b(locale2, d25);
                      this.rc.a(locale2, d25);
                      this.oc.a(locale2, locald2);
                      if (i12 != 0) {
                        break label2370;
                      }
                      if (i11 == 0) {
                        break;
                      }
                    }
                  }
                  break;
                case 192: 
                  if (i12 == 0) {
                    if (i11 == 0) {
                      break;
                    }
                  }
                  break;
                case 16: 
                case 144: 
                  bool6 = a(locale1, localx3, locale2, localx8, true, bool1, bool2);
                  if (i12 == 0) {
                    if (bool6)
                    {
                      this.oc.a(locale2, locald2);
                      d31 = d25 + this.sc.getDouble(locale2);
                      if (i12 != 0) {
                        break label2370;
                      }
                      if (d31 < d13)
                      {
                        localab1 = a(parame1, locale2, parame2);
                        d13 = d31;
                      }
                    }
                  }
                  break;
                }
              }
            }
          }
          locald2 = i5 != 0 ? locald2.i() : locald2.j();
        } while (i11 == 0);
      }
      int i4 = i2;
      if (!localh2.d())
      {
        if (i12 == 0)
        {
          if (i4 != 0) {
            break label3937;
          }
          i4 = 1;
          if (i12 == 0) {
            d10 = localh2.c();
          }
        }
        else if (d10 + d9 > d13)
        {
          i2 = 1;
          if (i11 == 0) {
            break label3937;
          }
        }
        locale1 = (a.c.e)localh2.a();
        this.qc.a(locale1, 144);
        localx3 = (x)this.H.get(locale1);
        d18 = bool1 ? d3 : d4;
        if ((g()) && ((i12 != 0) || (localx3 != null)) && ((i12 != 0) || (localx3.l())))
        {
          x localx5 = localx3;
          locale3 = locale1;
          do
          {
            do
            {
              if (localx5 == null) {
                break;
              }
              if (i11 != 0) {
                break label2645;
              }
              if (!localx5.l()) {
                break;
              }
              locale3 = ((a.c.d)this.pc.get(locale3)).a(locale3);
              if (i12 == 0) {}
              localx5 = locale3 == null ? null : (x)this.H.get(locale3);
            } while (i11 == 0);
          } while (i12 != 0);
          if (localx5 != null) {
            d18 = bool1 ? localx5.i() : localx5.h();
          }
        }
        double d20 = bool2 ? d7 : d8;
        if (i12 == 0) {
          if ((h()) && ((i12 != 0) || (localx3 != null)) && ((i12 != 0) || (!localx3.l())))
          {
            x localx7 = localx3;
            locale4 = locale1;
            do
            {
              do
              {
                if (localx7 == null) {
                  break;
                }
                if (i11 != 0) {
                  break label2808;
                }
                if (localx7.l()) {
                  break;
                }
                locale4 = ((a.c.d)this.pc.get(locale4)).a(locale4);
                if (i12 == 0) {}
                localx7 = locale4 == null ? null : (x)this.H.get(locale4);
              } while (i11 == 0);
            } while (i12 != 0);
            if (localx7 != null) {
              d20 = bool2 ? localx7.i() : localx7.h();
            }
          }
        }
        if (this.Db) {
          if ((i12 != 0) || (localx3 != null))
          {
            boolean bool4 = localx3.l();
            d17 = bool4 ? d16 : d15;
          }
        }
        double d22 = 1.7976931348623157E+308D;
        double d24 = 0.0D;
        if (i12 == 0) {
          if ((this.Eb) && (localx3 != null)) {
            d24 = b(locale1);
          }
        }
        int i6 = 1;
        a.c.d locald3 = locale1.h();
        do
        {
          if (locald3 == null)
          {
            if (i6 == 0) {
              break label2397;
            }
            if (i12 != 0) {
              break;
            }
            if (i11 != 0) {
              break label3942;
            }
            if (locale1.d() <= 0) {
              break label2397;
            }
            i6 = 0;
            locald3 = locale1.i();
          }
          locale2 = locald3.a(locale1);
          int i8 = this.qc.getInt(locale2);
          x localx9 = (x)this.H.get(locale2);
          if (i12 == 0) {}
          int i10 = (!i()) || (localx9 == null) ? 1 : 0;
          if (i12 == 0) {
            if (i10 == 0)
            {
              if (i12 != 0) {
                break label3136;
              }
              if (g())
              {
                if (i12 == 0) {
                  if (localx9.l())
                  {
                    if (i12 != 0) {
                      break label3128;
                    }
                    if (!h()) {
                      break label3127;
                    }
                  }
                }
                if ((i12 != 0) || (!localx9.l()))
                {
                  if (i12 == 0) {
                    if (!bool1)
                    {
                      if (i12 != 0) {
                        break label3087;
                      }
                      if (localx9.i() <= d18)
                      {
                        if (i12 != 0) {
                          break label3128;
                        }
                        if (localx9.h() >= d1) {
                          break label3127;
                        }
                      }
                    }
                  }
                  if (((i12 != 0) || (bool1)) && ((i12 != 0) || (localx9.h() >= d18))) {
                    if (i12 != 0) {}
                  }
                }
                i10 = localx9.i() <= d2 ? 1 : 0;
              }
            }
          }
          if (i12 == 0) {
            if (i10 == 0)
            {
              if (i12 != 0) {
                break label3287;
              }
              if (h())
              {
                if (i12 == 0) {
                  if (!localx9.l())
                  {
                    if (i12 != 0) {
                      break label3279;
                    }
                    if (!g()) {
                      break label3278;
                    }
                  }
                }
                if ((i12 != 0) || (localx9.l()))
                {
                  if (i12 == 0) {
                    if (!bool2)
                    {
                      if (i12 != 0) {
                        break label3238;
                      }
                      if (localx9.i() <= d20)
                      {
                        if (i12 != 0) {
                          break label3279;
                        }
                        if (localx9.h() >= d5) {
                          break label3278;
                        }
                      }
                    }
                  }
                  if (((i12 != 0) || (bool2)) && ((i12 != 0) || (localx9.h() >= d20))) {
                    if (i12 != 0) {}
                  }
                }
                i10 = localx9.i() <= d6 ? 1 : 0;
              }
            }
          }
          if (i12 == 0) {
            if (i8 != 144)
            {
              if (i12 != 0) {
                break label3914;
              }
              if (i10 != 0)
              {
                double d26 = 0.0D;
                y localy2 = null;
                d26 = d10 + paramn.getDouble(locald3);
                double d28 = this.tc.getDouble(locald3);
                boolean bool5;
                double d30;
                double d32;
                if (i12 == 0) {
                  if ((this.Db) && ((i12 != 0) || (localx3 != null)) && ((i12 != 0) || (localx9 != null)))
                  {
                    bool5 = localx3.l();
                    d30 = bool5 ? localw.b : localw.a;
                    d32 = bool5 ? localx9.g() : localx9.f();
                    double d34 = d11 * (Math.abs(d30 - d32) / (2.0D * d17 + 1.0D));
                    d28 = d34;
                  }
                }
                if (i12 == 0) {
                  if ((this.Eb) && ((i12 != 0) || (localx3 != null)) && ((i12 != 0) || (localx9 != null)))
                  {
                    bool5 = localx3.l();
                    d30 = bool5 ? localx9.b.b - localx9.a.b : localx9.b.a - localx9.a.a;
                    d32 = d12 * ((d24 - d30) / (2.0D * d24 + 1.0D));
                    d28 += d32;
                  }
                }
                if ((i12 != 0) || (this.yc))
                {
                  localy2 = (y)this.H.get(locale2);
                  if (i12 != 0) {
                    break label3620;
                  }
                  if (localy2 != null) {
                    d28 += localy2.s();
                  }
                }
                d26 += d28;
                this.tc.a(locald3, d28);
                if (i12 != 0) {
                  break label3914;
                }
                switch (i8)
                {
                case 0: 
                  if (i12 == 0)
                  {
                    if (w()) {
                      a(locale2, locale1, this.nc, parame1, parame2, paramn);
                    }
                    localh2.a(locale2, d26);
                    this.sc.a(locale2, d26);
                    this.qc.a(locale2, 16);
                    this.pc.a(locale2, locald3);
                  }
                  if (i12 == 0) {
                    if (i11 == 0) {
                      break;
                    }
                  }
                  break;
                case 16: 
                  if (i12 == 0) {
                    if (d26 < localh2.b(locale2))
                    {
                      localh2.b(locale2, d26);
                      this.sc.a(locale2, d26);
                      this.pc.a(locale2, locald3);
                      if (i12 != 0) {
                        break label3914;
                      }
                      if (i11 == 0) {
                        break;
                      }
                    }
                  }
                  break;
                case 144: 
                  if (i12 == 0) {
                    if (i11 == 0) {
                      break;
                    }
                  }
                  break;
                case 64: 
                case 192: 
                  bool5 = a(locale1, localx3, locale2, localx9, false, bool1, bool2);
                  if (i12 == 0) {
                    if (bool5)
                    {
                      this.pc.a(locale2, locald3);
                      d30 = d26 + this.rc.getDouble(locale2);
                      if (i12 != 0) {
                        break label3914;
                      }
                      if (d30 < d13)
                      {
                        localab1 = a(parame1, locale2, parame2);
                        d13 = d30;
                      }
                    }
                  }
                  break;
                }
              }
            }
          }
          locald3 = i6 != 0 ? locald3.i() : locald3.j();
        } while (i11 == 0);
      }
      if (localh1.d())
      {
        if (i12 != 0) {
          break label3969;
        }
        if (localh2.d()) {}
      }
      else
      {
        if (i12 != 0) {
          break label3969;
        }
      }
      i1 = i2 != 0 ? 1 : 0;
    } while (i11 == 0);
    label1097:
    label1739:
    label2393:
    label2395:
    label2397:
    label3937:
    label3942:
    if (i12 == 0)
    {
      if ((i12 != 0) || (localab1 == null)) {
        localab1 = new a.c.ab();
      }
      if (w())
      {
        a(localab1, this.nc);
        a(paramq, this.nc);
      }
    }
    label1539:
    label1579:
    label1580:
    label1588:
    label1730:
    label1731:
    label2645:
    label3287:
    return localab1;
  }
  
  private boolean a(a.c.e parame1, x paramx1, a.c.e parame2, x paramx2, boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3)
  {
    int i4 = Cc;
    int i3 = Bc;
    if ((i4 != 0) || ((!i()) || ((i4 != 0) || ((paramx2 == null) || (paramx1 == null))))) {
      return true;
    }
    double d1;
    x localx1;
    a.c.e locale1;
    label208:
    x localx2;
    a.c.e locale2;
    if (i4 == 0) {
      if (g())
      {
        d1 = 1.7976931348623157E+308D;
        localx1 = paramBoolean1 ? paramx1 : paramx2;
        locale1 = paramBoolean1 ? parame1 : parame2;
        do
        {
          do
          {
            if (localx1 == null) {
              break;
            }
            if (i3 != 0) {
              break label208;
            }
            if (!localx1.l()) {
              break;
            }
            a.c.d locald1 = (a.c.d)this.oc.get(locale1);
            if (i4 == 0) {}
            locale1 = locald1 == null ? null : locald1.a(locale1);
            if (i4 == 0) {}
            localx1 = locale1 == null ? null : (x)this.H.get(locale1);
          } while (i3 == 0);
        } while (i4 != 0);
        if (localx1 != null) {
          d1 = paramBoolean2 ? localx1.h() : localx1.i();
        }
        if (d1 != 1.7976931348623157E+308D)
        {
          localx2 = paramBoolean1 ? paramx2 : paramx1;
          locale2 = paramBoolean1 ? parame2 : parame1;
          do
          {
            do
            {
              if (localx2 == null) {
                break;
              }
              if (i3 != 0) {
                break label437;
              }
              if (!localx2.l()) {
                break;
              }
              a.c.d locald3 = (a.c.d)this.pc.get(locale2);
              if (i4 == 0) {}
              locale2 = locald3 == null ? null : locald3.a(locale2);
              if (i4 == 0) {}
              localx2 = locale2 == null ? null : (x)this.H.get(locale2);
            } while (i3 == 0);
          } while (i4 != 0);
          if (((i4 != 0) || (localx2 != null)) && (localx2 != localx1))
          {
            double d2 = paramBoolean2 ? localx2.i() : localx2.h();
            if (i4 == 0) {
              if (i4 != 0) {}
            }
            if (i4 == 0) {}
            int i1 = d2 > d1 ? 1 : paramBoolean2 ? 0 : d2 < d1 ? 1 : 0;
            if ((i4 != 0) || (i1 == 0)) {
              return false;
            }
          }
        }
      }
    }
    if (h())
    {
      label437:
      d1 = 1.7976931348623157E+308D;
      localx1 = paramBoolean1 ? paramx1 : paramx2;
      locale1 = paramBoolean1 ? parame1 : parame2;
      do
      {
        do
        {
          if (localx1 == null) {
            break;
          }
          if (i3 != 0) {
            break label598;
          }
          if (localx1.l()) {
            break;
          }
          a.c.d locald2 = (a.c.d)this.oc.get(locale1);
          if (i4 == 0) {}
          locale1 = locald2 == null ? null : locald2.a(locale1);
          if (i4 == 0) {}
          localx1 = locale1 == null ? null : (x)this.H.get(locale1);
        } while (i3 == 0);
      } while (i4 != 0);
      if (localx1 != null) {
        d1 = paramBoolean3 ? localx1.h() : localx1.i();
      }
      if (d1 != 1.7976931348623157E+308D)
      {
        label598:
        localx2 = paramBoolean1 ? paramx2 : paramx1;
        locale2 = paramBoolean1 ? parame2 : parame1;
        do
        {
          do
          {
            if (localx2 == null) {
              break;
            }
            if (i3 != 0) {
              break label824;
            }
            if (localx2.l()) {
              break;
            }
            a.c.d locald4 = (a.c.d)this.pc.get(locale2);
            if (i4 == 0) {}
            locale2 = locald4 == null ? null : locald4.a(locale2);
            if (i4 == 0) {}
            localx2 = locale2 == null ? null : (x)this.H.get(locale2);
          } while (i3 == 0);
        } while (i4 != 0);
        if (((i4 != 0) || (localx2 != null)) && (localx2 != localx1))
        {
          double d3 = paramBoolean3 ? localx2.i() : localx2.h();
          if (i4 == 0) {
            if (i4 != 0) {}
          }
          if (i4 == 0) {}
          int i2 = d3 > d1 ? 1 : paramBoolean3 ? 0 : d3 < d1 ? 1 : 0;
          if ((i4 != 0) || (i2 == 0)) {
            return false;
          }
        }
      }
    }
    label824:
    return true;
  }
  
  public void b(double paramDouble)
  {
    this.jc = paramDouble;
  }
  
  public double u()
  {
    return this.jc;
  }
  
  public void c(boolean paramBoolean)
  {
    this.lc = paramBoolean;
  }
  
  public boolean v()
  {
    return this.lc;
  }
  
  boolean w()
  {
    if (Cc == 0) {}
    return this.jc > 0.0D;
  }
  
  boolean a(a.c.d paramd, k paramk)
  {
    Object localObject1 = paramk.get(paramd.e());
    Object localObject2 = paramk.get(paramd.f());
    return ((Cc != 0) || (localObject1 != null)) && (localObject1 == localObject2);
  }
  
  void a(a.c.q paramq, a.c.x paramx)
  {
    int i4 = Cc;
    int i3 = Bc;
    a.c.d[] arrayOfd = a(2 * this.p.l());
    a.c.w localw = paramq.v();
    if (localw.e()) {}
    label147:
    label149:
    label290:
    label297:
    label299:
    while (i4 != 0)
    {
      a.c.e locale1 = localw.d();
      do
      {
        a.c.e locale2 = (a.c.e)paramx.get(locale1);
        if (i4 != 0) {
          break label320;
        }
        if (i3 != 0) {
          break label313;
        }
        if (((i4 == 0) && (locale2 == null)) || (locale2 == locale1)) {
          break label290;
        }
        int i1 = 0;
        a.c.d locald1 = locale1.i();
        do
        {
          do
          {
            if (locald1 == null) {
              break;
            }
            arrayOfd[(i1++)] = locald1;
            if (i4 != 0) {
              break label149;
            }
            locald1 = locald1.j();
            if (i3 != 0) {
              break label147;
            }
          } while (i3 == 0);
        } while (i4 != 0);
        locald1 = locale1.h();
        if (locald1 != null)
        {
          arrayOfd[(i1++)] = locald1;
          locald1 = locald1.i();
        }
        while (i4 != 0)
        {
          if (i4 != 0) {
            break label299;
          }
          if (i3 != 0) {
            break label297;
          }
          if (i3 == 0) {
            break;
          }
        }
        int i2 = 0;
        do
        {
          if (i2 >= i1) {
            break label276;
          }
          a.c.d locald2 = arrayOfd[i2];
          if (i3 != 0) {
            break;
          }
          if (!a(locald2, paramx)) {
            if (locald2.e() == locale1)
            {
              paramq.a(locald2, locale2, locald2.f());
              if (i4 != 0) {
                continue;
              }
              if (i3 == 0) {}
            }
            else
            {
              paramq.a(locald2, locald2.e(), locale2);
            }
          }
          i2++;
        } while (i3 == 0);
      } while (i4 != 0);
      this.mc.a(locale1);
      localw.f();
      if (i3 == 0) {
        break;
      }
    }
    label276:
    localw = paramq.v();
    label313:
    label320:
    do
    {
      while (i3 == 0)
      {
        if (!localw.e()) {
          break;
        }
        paramx.a(localw.d(), null);
        localw.f();
      }
    } while (i4 != 0);
  }
  
  void a(a.c.ab paramab, a.c.x paramx)
  {
    int i2 = Cc;
    int i1 = Bc;
    v localv = paramab.f();
    do
    {
      if (localv == null) {
        break;
      }
      a.c.d locald = (a.c.d)localv.c();
      a.c.e locale1 = (a.c.e)paramx.get(locald.e());
      a.c.e locale2 = (a.c.e)paramx.get(locald.f());
      if (i2 == 0)
      {
        if ((locale1 != null) && ((i2 != 0) || (locale1 == locale2))) {
          paramab.h(localv);
        }
        localv = localv.a();
      }
    } while (i1 == 0);
  }
  
  void a(a.c.e parame1, a.c.e parame2, a.c.x paramx, a.c.e parame3, a.c.e parame4, a.c.n paramn)
  {
    int i9 = Cc;
    int i8 = Bc;
    x localx1 = (x)this.H.get(parame1);
    x localx2 = (x)this.H.get(parame2);
    if ((i9 != 0) || ((localx1 == null) || (paramx.get(parame1) != null))) {
      return;
    }
    Comparator local0 = new Comparator()
    {
      private final a.c.e val$v;
      private final a.c.e val$source;
      private final x val$vPatch;
      
      public int compare(Object paramAnonymousObject1, Object paramAnonymousObject2)
      {
        int j = g.Cc;
        int i = g.Bc;
        a.c.e locale1 = ((a.c.d)paramAnonymousObject1).a(this.val$v);
        a.c.e locale2 = ((a.c.d)paramAnonymousObject2).a(this.val$v);
        x localx1 = (x)g.this.H.get(locale1);
        x localx2 = (x)g.this.H.get(locale2);
        a.c.e locale3;
        double d1;
        if (localx1 == null)
        {
          if (j == 0) {}
          locale3 = locale1 == this.val$source ? g.this.z : g.this.A;
          if (j == 0) {}
          d1 = this.val$vPatch.l() ? g.this.p.n(locale3) : g.this.p.m(locale3);
          if (i == 0) {}
        }
        else
        {
          d1 = 0.5D * (localx1.h() + localx1.i());
        }
        double d2;
        if (localx2 == null)
        {
          if (j == 0) {}
          locale3 = locale2 == this.val$source ? g.this.z : g.this.A;
          if (j == 0) {}
          d2 = this.val$vPatch.l() ? g.this.p.n(locale3) : g.this.p.m(locale3);
          if (j != 0) {
            break label289;
          }
          if (i == 0) {}
        }
        else
        {
          d2 = 0.5D * (localx2.h() + localx2.i());
        }
        label289:
        if (j == 0) {}
        if (j == 0) {}
        return d1 < d2 ? -1 : d1 > d2 ? 1 : 0;
      }
    };
    a.c.d[] arrayOfd = a(parame1.c());
    int i1 = 0;
    a.c.d locald1 = parame1.i();
    do
    {
      do
      {
        if (locald1 == null) {
          break;
        }
        arrayOfd[(i1++)] = locald1;
        if (i9 != 0) {
          break label145;
        }
        locald1 = locald1.j();
        if (i8 != 0) {
          break label143;
        }
      } while (i8 == 0);
    } while (i9 != 0);
    locald1 = parame1.h();
    label143:
    label145:
    if (locald1 != null) {}
    while (i9 != 0)
    {
      arrayOfd[(i1++)] = locald1;
      locald1 = locald1.i();
      if ((i9 == 0) && (i8 != 0)) {
        break label195;
      }
      if (i8 == 0) {
        break;
      }
    }
    l.a(arrayOfd, 0, i1, local0);
    label195:
    locald1 = null;
    Object localObject1 = null;
    Object localObject2 = null;
    int i2 = 0;
    int i3 = 0;
    int i4 = this.x.l();
    int i5 = this.x.j();
    int i6 = 0;
    label378:
    do
    {
      if (i6 >= i1) {
        break;
      }
      a.c.d locald2 = arrayOfd[i6];
      a.c.e locale1 = locald2.a(parame1);
      x localx3 = (x)this.H.get(locale1);
      x localx4 = null;
      a.c.e locale2 = null;
      if (i9 == 0) {}
      int i7 = i6 == i1 - 1 ? 1 : 0;
      a.c.e locale3;
      if (i7 == 0)
      {
        locale2 = arrayOfd[(i6 + 1)].a(parame1);
        localx4 = (x)this.H.get(locale2);
        if (i9 == 0) {
          if (localx4 != null)
          {
            if (i9 != 0) {
              break label378;
            }
            if (localx3 != null)
            {
              if (i9 != 0) {
                break label378;
              }
              if (localx4.h() - localx3.i() > 0.01D) {
                i7 = 1;
              }
            }
          }
        }
        if (((i9 != 0) || (localx4 != null)) && ((i9 != 0) || (localx4.g)) && ((i9 != 0) || ((localx1.h() < localx4.i) && ((i9 != 0) || (localx1.i() > localx4.h)))))
        {
          locale3 = (a.c.e)this.bc.get(localx4);
          if (i9 != 0) {
            break label498;
          }
          if (locale3 != null)
          {
            if (i9 != 0) {
              break label498;
            }
            if (locale3 != this.z)
            {
              if (i9 != 0) {
                break label498;
              }
              if (locale3 != this.A) {
                i7 = 1;
              }
            }
          }
        }
      }
      if (locale1 == parame2) {
        i3 = 1;
      }
      if (i9 == 0)
      {
        if (i7 != 0)
        {
          locale3 = null;
          a.c.d locald3;
          if (i3 == 0)
          {
            locale3 = this.mc.a();
            this.H.a(locale3, localx1);
            paramx.a(locale3, parame1);
            this.qc.a(locale3, 0);
            this.rc.a(locale3, (1.0D / 0.0D));
            this.sc.a(locale3, (1.0D / 0.0D));
            for (;;)
            {
              if (i2 > i6) {
                break label733;
              }
              locald3 = arrayOfd[(i2++)];
              a.c.e locale4 = locald3.f();
              a.c.e locale5 = locald3.e();
              x localx5 = (x)this.H.get(locald3.f());
              x localx6 = (x)this.H.get(locald3.e());
              if ((i9 != 0) || (i8 != 0)) {
                break;
              }
              if (locald3.e() == parame1)
              {
                this.x.a(locald3, locale3, locald3.f());
                if (i9 == 0) {
                  if (i8 == 0) {}
                }
              }
              else
              {
                this.x.a(locald3, locald3.e(), locale3);
              }
            }
          }
          locale3 = parame1;
          paramx.a(locale3, parame1);
          i2 = i6 + 1;
          if (i9 == 0) {
            if (localObject1 != null)
            {
              locald3 = this.mc.a((a.c.e)localObject1, locale3);
              paramn.a(locald3, this.jc);
            }
          }
          localObject1 = locale3;
          i3 = 0;
        }
        i6++;
      }
    } while (i8 == 0);
    label498:
  }
  
  void x()
  {
    int i2 = Cc;
    int i1 = Bc;
    a.c.ab localab = y();
    if (localab.isEmpty()) {
      return;
    }
    a.c.n localn = this.p.C();
    Object localObject1 = localab.l();
    do
    {
      do
      {
        if (!((m)localObject1).e()) {
          break;
        }
        localObject2 = ((m)localObject1).a();
        localn.a(localObject2, true);
        if (i1 != 0) {
          break label133;
        }
        if (this.Tb)
        {
          if (i2 != 0) {
            continue;
          }
          if (!this.cc.getBool(localObject2)) {
            b((a.c.d)localObject2, this.p);
          }
        }
        ((m)localObject1).f();
      } while (i1 == 0);
    } while (i2 != 0);
    localObject1 = this.p.w();
    label133:
    label215:
    do
    {
      do
      {
        if (!((m)localObject1).e()) {
          break label290;
        }
        localObject2 = ((m)localObject1).a();
        if (i1 != 0) {
          break label303;
        }
        if (localn.getBool(localObject2))
        {
          m localm = null;
          if (i2 == 0) {
            if (d(((a.c.d)localObject2).e()))
            {
              localm = ((a.c.d)localObject2).e().l();
              break label215;
            }
          }
          if (d(((a.c.d)localObject2).f())) {
            localm = ((a.c.d)localObject2).f().l();
          }
          if ((i2 != 0) || (localm != null)) {
            do
            {
              if (!localm.e()) {
                break;
              }
              localn.a(localm.a(), true);
              localm.f();
              if (i2 != 0) {
                break label287;
              }
              if (i1 != 0) {
                break label285;
              }
            } while (i1 == 0);
          }
        }
      } while (i2 != 0);
      ((m)localObject1).f();
    } while (i1 == 0);
    label285:
    label287:
    label290:
    localObject1 = c();
    label303:
    Object localObject2 = this.p.c(localObject1);
    byte b = this.q;
    this.q = 2;
    this.p.a(localObject1, localn);
    k();
    j();
    l();
    r();
    this.q = b;
    this.p.j(localObject1);
    if (i2 == 0)
    {
      if (localObject2 != null) {
        this.p.a(localObject1, (k)localObject2);
      }
      this.p.a(localn);
    }
  }
  
  int a(a.c.n paramn)
  {
    int i3 = Cc;
    int i2 = Bc;
    int i1 = 0;
    k localk1 = this.p.c(b());
    k localk2 = this.p.c(c());
    m localm = this.p.w();
    if (localm.e())
    {
      if ((i3 == 0) && (i2 != 0)) {
        break label256;
      }
      if (i3 == 0) {
        if (this.q == 2)
        {
          if (i3 != 0) {
            break label247;
          }
          if (!localk2.getBool(localm.a())) {
            break label238;
          }
          paramn.a(localm.a(), true);
          i1++;
          if (i3 != 0) {
            break label247;
          }
          if (i2 == 0) {
            break label238;
          }
        }
      }
    }
    label238:
    label247:
    while (i3 != 0)
    {
      if (this.q == 4)
      {
        a.c.d locald = localm.a();
        if (i3 == 0) {
          if (!localk1.getBool(locald.e()))
          {
            if (i3 != 0) {
              break label247;
            }
            if (!localk1.getBool(locald.f())) {
              break label238;
            }
          }
        }
        if (i3 != 0) {
          break label247;
        }
        if (!paramn.getBool(locald))
        {
          paramn.a(locald, true);
          i1++;
          if (i3 != 0) {
            break label247;
          }
          if (i2 == 0) {}
        }
      }
      else
      {
        paramn.a(localm.a(), true);
        i1++;
      }
      localm.f();
      if (i2 == 0) {
        break;
      }
    }
    label256:
    return i1;
  }
  
  a.c.ab y()
  {
    int i12 = Cc;
    int i11 = Bc;
    int[] arrayOfInt = new int[this.p.l()];
    a.c.n localn = a.i.db.b(new boolean[this.p.l()]);
    int i1 = a(localn);
    a.c.d[] arrayOfd = new a.c.d[i1];
    Object localObject1 = this.p.w();
    do
    {
      while (i11 == 0)
      {
        if (!((m)localObject1).e()) {
          break;
        }
        if (i12 == 0)
        {
          if (localn.getBool(((m)localObject1).a())) {
            arrayOfd[(--i1)] = ((m)localObject1).a();
          }
          ((m)localObject1).f();
        }
      }
    } while (i12 != 0);
    localObject1 = new ArrayList(this.p.l());
    ArrayList localArrayList = new ArrayList(this.p.l());
    int i2 = 0;
    Object localObject5;
    label441:
    label496:
    do
    {
      if (i2 >= arrayOfd.length) {
        break;
      }
      localObject2 = arrayOfd[i2];
      localObject3 = this.p.o((a.c.d)localObject2);
      Object localObject4 = (a.d.w)((z)localObject3).e();
      a.d.w localw = (a.d.w)((z)localObject3).d();
      localObject5 = this.p.k(((a.c.d)localObject2).f());
      if (i12 == 0) {
        if (localw.a < ((zc)localObject5).a())
        {
          localObject4 = new a.d.w(((zc)localObject5).a(), ((a.d.w)localObject4).b);
          if (i12 != 0) {
            break label496;
          }
          if (i11 == 0) {
            break label441;
          }
        }
      }
      if (i12 == 0) {
        if (localw.a > ((zc)localObject5).a() + ((zc)localObject5).c())
        {
          localObject4 = new a.d.w(((zc)localObject5).a() + ((zc)localObject5).c(), ((a.d.w)localObject4).b);
          if (i12 != 0) {
            break label496;
          }
          if (i11 == 0) {
            break label441;
          }
        }
      }
      if (i12 == 0) {
        if (localw.b < ((zc)localObject5).b())
        {
          localObject4 = new a.d.w(((a.d.w)localObject4).a, ((zc)localObject5).b());
          if (i12 != 0) {
            break label496;
          }
          if (i11 == 0) {
            break label441;
          }
        }
      }
      if (i12 == 0)
      {
        if (localw.b > ((zc)localObject5).b() + ((zc)localObject5).d()) {
          localObject4 = new a.d.w(((a.d.w)localObject4).a, ((zc)localObject5).b() + ((zc)localObject5).d());
        }
        ((z)localObject3).add(localObject4);
        localObject4 = (a.d.w)((z)localObject3).b();
        localw = (a.d.w)((z)localObject3).a();
        localObject5 = this.p.k(((a.c.d)localObject2).e());
      }
      if (i12 == 0) {
        if (localw.a < ((zc)localObject5).a())
        {
          localObject4 = new a.d.w(((zc)localObject5).a(), ((a.d.w)localObject4).b);
          if (i12 != 0) {
            break label718;
          }
          if (i11 == 0) {
            break label713;
          }
        }
      }
      if (i12 == 0) {
        if (localw.a > ((zc)localObject5).a() + ((zc)localObject5).c())
        {
          localObject4 = new a.d.w(((zc)localObject5).a() + ((zc)localObject5).c(), ((a.d.w)localObject4).b);
          if (i12 != 0) {
            break label718;
          }
          if (i11 == 0) {
            break label713;
          }
        }
      }
      if (i12 == 0) {
        if (localw.b < ((zc)localObject5).b())
        {
          localObject4 = new a.d.w(((a.d.w)localObject4).a, ((zc)localObject5).b());
          if (i12 != 0) {
            break label718;
          }
          if (i11 == 0) {
            break label713;
          }
        }
      }
      if (i12 == 0) {
        if (localw.b > ((zc)localObject5).b() + ((zc)localObject5).d()) {
          localObject4 = new a.d.w(((a.d.w)localObject4).a, ((zc)localObject5).b() + ((zc)localObject5).d());
        }
      }
      do
      {
        do
        {
          if (((z)localObject3).isEmpty()) {
            break label811;
          }
          localw = (a.d.w)((z)localObject3).b();
          e_ locale_1 = new e_((a.d.w)localObject4, localw, (a.c.d)localObject2);
          if (i11 != 0) {
            break;
          }
          if (Math.abs(((a.d.w)localObject4).a - localw.a) < 0.01D)
          {
            ((List)localObject1).add(locale_1);
            if (i12 != 0) {
              continue;
            }
            if (i11 == 0) {}
          }
          else
          {
            localArrayList.add(locale_1);
          }
          localObject4 = localw;
        } while (i11 == 0);
        i2++;
      } while (i12 != 0);
    } while (i11 == 0);
    label713:
    label718:
    Comparator local1 = new Comparator()
    {
      public int compare(Object paramAnonymousObject1, Object paramAnonymousObject2)
      {
        return l.a(((g.e_)paramAnonymousObject1).a.b, ((g.e_)paramAnonymousObject2).a.b);
      }
    };
    label811:
    l.a(localArrayList, local1);
    Object localObject2 = new e_(null, null, null);
    Object localObject3 = new e_(null, null, null);
    int i3 = 0;
    int i4 = 0;
    if (i4 < ((List)localObject1).size()) {}
    label1054:
    label1063:
    label1350:
    while (i12 != 0)
    {
      localObject5 = (e_)((List)localObject1).get(i4);
      int i5 = ((q)this.J.get(((e_)localObject5).c)).p;
      double d2 = ((e_)localObject5).a.a;
      if (i12 == 0)
      {
        if (i11 != 0) {
          break label1382;
        }
        if (i12 != 0) {}
      }
      else if (((e_)localObject5).a.b < ((e_)localObject5).b.b)
      {
        d3 = ((e_)localObject5).a.b;
        d4 = ((e_)localObject5).b.b;
        ((e_)localObject2).a = ((e_)localObject5).a;
        ((e_)localObject3).a = ((e_)localObject5).b;
        if (i12 != 0) {
          break label1063;
        }
        if (i11 == 0) {
          break label1054;
        }
      }
      double d3 = ((e_)localObject5).b.b;
      double d4 = ((e_)localObject5).a.b;
      ((e_)localObject2).a = ((e_)localObject5).b;
      ((e_)localObject3).a = ((e_)localObject5).a;
      int i7 = Collections.binarySearch(localArrayList, localObject2, local1);
      if (i12 == 0) {
        if (i7 < 0) {
          i7 = -i7 - 1;
        }
      }
      int i8 = Collections.binarySearch(localArrayList, localObject3, local1);
      if (i12 == 0) {
        if (i8 < 0) {
          i8 = -i8 - 1;
        }
      }
      int i9 = i7;
      do
      {
        do
        {
          if (i9 >= i8) {
            break label1350;
          }
          e_ locale_2 = (e_)localArrayList.get(i9);
          if (i11 != 0) {
            break;
          }
          if ((locale_2.a.b > d3) && ((i12 != 0) || (locale_2.a.b < d4)))
          {
            double d5 = locale_2.a.a;
            double d6 = locale_2.b.a;
            if (i12 == 0) {
              if (d5 > d6)
              {
                d6 = locale_2.a.a;
                d5 = locale_2.b.a;
              }
            }
            if (i12 != 0) {
              continue;
            }
            if (d5 < d2)
            {
              if (i12 != 0) {
                continue;
              }
              if (d6 > d2)
              {
                i3++;
                int i10 = ((q)this.J.get(locale_2.c)).p;
                if (i12 == 0)
                {
                  if (i5 > i10)
                  {
                    arrayOfInt[locale_2.c.d()] += 1;
                    if (i12 != 0) {
                      continue;
                    }
                    if (i11 == 0) {}
                  }
                  else
                  {
                    if (i12 != 0) {
                      continue;
                    }
                  }
                }
                else if (i5 < i10) {
                  arrayOfInt[((e_)localObject5).c.d()] += 1;
                }
              }
            }
          }
          i9++;
        } while (i11 == 0);
        i4++;
      } while (i12 != 0);
      if (i11 == 0) {
        break;
      }
    }
    l.a(arrayOfd, new Comparator()
    {
      private final int[] val$penalty;
      
      public int compare(Object paramAnonymousObject1, Object paramAnonymousObject2)
      {
        a.c.d locald1 = (a.c.d)paramAnonymousObject1;
        a.c.d locald2 = (a.c.d)paramAnonymousObject2;
        return l.a(this.val$penalty[locald2.d()], this.val$penalty[locald1.d()]);
      }
    });
    label1382:
    a.c.ab localab = new a.c.ab();
    double d1 = Math.max(0.1D * this.p.l(), 5.0D);
    int i6 = 0;
    do
    {
      if (i6 >= arrayOfd.length) {
        break;
      }
      a.c.d locald = arrayOfd[i6];
      if ((i12 == 0) && (arrayOfInt[locald.d()] == 0)) {
        break;
      }
      if (i12 == 0)
      {
        if (localab.size() > d1) {
          break;
        }
        localab.add(locald);
        i6++;
      }
    } while (i11 == 0);
    return localab;
  }
  
  private double b(a.c.e parame)
  {
    int i2 = Cc;
    int i1 = Bc;
    double d1 = 0.0D;
    x localx1 = (x)this.H.get(parame);
    boolean bool = localx1.l();
    a.c.d locald = parame.h();
    x localx2;
    double d2;
    do
    {
      do
      {
        if (locald == null) {
          break;
        }
        if (i1 != 0) {
          break label180;
        }
        if (!locald.g())
        {
          localx2 = (x)this.H.get(locald.a(parame));
          if (i2 != 0) {
            continue;
          }
          if (localx2 != null)
          {
            d2 = bool ? localx2.b.b - localx2.a.b : localx2.b.a - localx2.a.a;
            if (i2 != 0) {
              continue;
            }
            if (d2 > d1) {
              d1 = d2;
            }
          }
        }
        locald = locald.i();
      } while (i1 == 0);
    } while (i2 != 0);
    locald = parame.i();
    label180:
    do
    {
      while (i1 == 0)
      {
        if (locald == null) {
          break;
        }
        if (!locald.g())
        {
          localx2 = (x)this.H.get(locald.a(parame));
          if (i2 != 0) {
            continue;
          }
          if (localx2 != null)
          {
            d2 = bool ? localx2.b.b - localx2.a.b : localx2.b.a - localx2.a.a;
            if (i2 != 0) {
              continue;
            }
            if (d2 > d1) {
              d1 = d2;
            }
          }
        }
        locald = locald.j();
      }
    } while (i2 != 0);
    return d1;
  }
  
  private a.c.ab a(a.c.e parame1, a.c.e parame2, a.c.e parame3)
  {
    int i2 = Cc;
    int i1 = Bc;
    a.c.ab localab = new a.c.ab();
    a.c.e locale = parame2;
    if (locale != parame1) {}
    a.c.d locald;
    while (i2 != 0)
    {
      locald = (a.c.d)this.oc.get(locale);
      localab.add(locald);
      if (i2 != 0) {
        break label87;
      }
      locale = locald.a(locale);
      if (i1 != 0) {
        break label86;
      }
      if (i1 == 0) {
        break;
      }
    }
    localab.j();
    label86:
    label87:
    locale = parame2;
    do
    {
      if (locale == parame3) {
        break;
      }
      locald = (a.c.d)this.pc.get(locale);
      if (i2 == 0)
      {
        if (i1 != 0) {
          break label145;
        }
        localab.add(locald);
        locale = locald.a(locale);
      }
    } while (i1 == 0);
    label145:
    return localab;
  }
  
  private void c(a.c.d paramd)
  {
    int i1 = Cc;
    a.c.e locale1 = paramd.e();
    a.c.e locale2 = paramd.f();
    z localz = new z();
    a.d.w localw1 = this.p.r(paramd);
    a.d.w localw2 = this.p.s(paramd);
    localz.add(localw1);
    if (i1 == 0) {
      if (paramd.g())
      {
        double d1 = Math.max(10.0D, this.v);
        zc localzc = this.p.k(locale1);
        if (i1 == 0) {}
        double d2 = localw1.b > this.p.n(locale1) ? localzc.b() + localzc.d() + d1 : localzc.b() - d1;
        localzc = this.p.k(locale2);
        if (i1 == 0) {}
        double d3 = localw2.a > this.p.m(locale2) ? localzc.a() + localzc.c() + d1 : localzc.a() - d1;
        localz.add(new a.d.w(localw1.a, d2));
        localz.add(new a.d.w(d3, d2));
        localz.add(new a.d.w(d3, localw2.b));
        if (i1 != 0) {
          break label342;
        }
        if (Bc == 0) {
          break label335;
        }
      }
    }
    if (i1 == 0) {
      if (localw1.a != localw2.a)
      {
        if (i1 != 0) {
          break label342;
        }
        if (localw1.b != localw2.b) {
          localz.add(new a.d.w(localw1.a, localw2.b));
        }
      }
    }
    label335:
    label342:
    localz.add(localw2);
    this.p.a(paramd, localz);
  }
  
  private x a(a.c.e parame, double paramDouble, byte paramByte)
  {
    int i3 = Cc;
    int i2 = Bc;
    int i1 = 0;
    Object localObject = null;
    nb localnb = (nb)this.E.get(parame);
    z localz1 = null;
    z localz2 = null;
    double d1 = 0.0D;
    double d2 = 0.0D;
    switch (paramByte)
    {
    case 1: 
      localz1 = localnb.a;
      localz2 = localnb.b;
      d1 = this.p.q(parame);
      break;
    case 2: 
      localz1 = localnb.c;
      localz2 = localnb.d;
      d1 = this.p.q(parame);
      break;
    case 8: 
      localz1 = localnb.e;
      localz2 = localnb.f;
      d1 = this.p.p(parame);
      break;
    case 4: 
      localz1 = localnb.g;
      localz2 = localnb.h;
      d1 = this.p.p(parame);
    }
    a.c.y localy = localz1.h();
    x localx;
    do
    {
      if (!localy.e()) {
        break;
      }
      if (i2 != 0) {
        break label297;
      }
      if (i1 != 0) {
        break;
      }
      localx = (x)localy.j();
      if (i3 == 0)
      {
        if (paramDouble >= localx.h())
        {
          if (i3 != 0) {
            continue;
          }
          if (paramDouble <= localx.i())
          {
            localObject = localx;
            i1 = 1;
          }
        }
        localy.f();
      }
    } while (i2 == 0);
    d2 = 1.7976931348623157E+308D;
    if ((i3 == 0) && (i1 == 0))
    {
      label297:
      localy = localz2.h();
      do
      {
        if (!localy.e()) {
          break;
        }
        if (i2 != 0) {
          break label417;
        }
        localx = (x)localy.j();
        if (i3 == 0)
        {
          if (paramDouble >= localx.h())
          {
            if (i3 != 0) {
              continue;
            }
            if (paramDouble <= localx.i())
            {
              if (i3 != 0) {
                continue;
              }
              if (Math.abs(d1 - localx.j()) <= d2)
              {
                d2 = Math.abs(d1 - localx.j());
                localObject = localx;
              }
            }
          }
          localy.f();
        }
      } while (i2 == 0);
    }
    label417:
    return localObject;
  }
  
  private z a(double paramDouble1, double paramDouble2, boolean paramBoolean)
  {
    int i3 = Cc;
    int i2 = Bc;
    z localz = null;
    double d1 = paramBoolean ? this.s.a : this.s.b;
    int i1 = (int)Math.floor((paramDouble1 - d1) / this.u);
    double d2 = i1 * this.u + d1;
    if (i3 == 0)
    {
      if (d2 < paramDouble1) {
        d2 += this.u;
      }
      i1 = (int)Math.floor((paramDouble2 - d1) / this.u);
    }
    double d3 = i1 * this.u + d1;
    if (i3 == 0) {
      if (d3 >= paramDouble2) {
        d3 -= this.u;
      }
    }
    if ((i3 != 0) || ((d2 >= paramDouble1) && (d3 < paramDouble2)))
    {
      localz = new z();
      double d4 = d2;
      do
      {
        if (d4 > d3) {
          break;
        }
        if (i2 != 0) {
          break label216;
        }
        localz.add(new Double(d4));
        d4 += this.u;
      } while (i2 == 0);
    }
    label216:
    return localz;
  }
  
  private z a(x paramx)
  {
    return a(paramx.h(), paramx.i(), paramx.l());
  }
  
  private int b(x paramx)
  {
    int i3 = Cc;
    int i2 = Bc;
    int i1 = 0;
    y localy = (y)paramx;
    if (localy.u())
    {
      z localz1 = a(localy);
      if ((i3 != 0) || (localz1 != null))
      {
        z localz2 = localy.t();
        a.c.y localy1 = localz2.h();
        label167:
        do
        {
          if (!localy1.e()) {
            break;
          }
          if (i2 != 0) {
            break label185;
          }
          if (localz1.isEmpty()) {
            break;
          }
          double d1 = ((y.a_)localy1.j()).b;
          a.c.y localy2 = localz1.h();
          do
          {
            do
            {
              if (!localy2.e()) {
                break label167;
              }
              double d2 = ((Double)localy2.j()).doubleValue();
              if (i2 != 0) {
                break;
              }
              if (Math.abs(d1 - d2) <= 0.5D)
              {
                localz1.b(localy2);
                i1++;
              }
              localy2.f();
            } while (i2 == 0);
            localy1.f();
          } while (i3 != 0);
        } while (i2 == 0);
      }
    }
    label185:
    return i1;
  }
  
  private int a(double paramDouble1, double paramDouble2)
  {
    int i3 = Cc;
    int i1 = 0;
    double d1 = paramDouble1 / this.u;
    d1 = Math.floor(d1);
    if (i3 == 0) {
      if (paramDouble1 - d1 * this.u == 0.0D) {
        i1++;
      }
    }
    double d2 = paramDouble2 / this.u;
    d2 = Math.floor(d2);
    if (i3 == 0) {
      if (paramDouble2 - d2 * this.u == 0.0D) {
        i1--;
      }
    }
    int i2 = (int)(d2 - d1) + i1;
    return i2;
  }
  
  private boolean a(z paramz, boolean paramBoolean1, boolean paramBoolean2)
  {
    int i5 = Cc;
    int i4 = Bc;
    if (i5 == 0) {
      if (paramz.isEmpty()) {
        return false;
      }
    }
    x localx = (x)paramz.a();
    if (i5 == 0)
    {
      if (localx.g) {
        paramBoolean1 = true;
      }
      localx = (x)paramz.d();
    }
    if (i5 == 0) {
      if (localx.g) {
        paramBoolean2 = true;
      }
    }
    boolean bool = true;
    int i1;
    int i2;
    if ((i5 != 0) || (this.r))
    {
      if (i5 == 0) {}
      i1 = paramBoolean1 ? 1 : 0;
      if (i5 == 0) {}
      i2 = paramz.size() - (paramBoolean2 ? 1 : 0);
    }
    while (i1 < i2)
    {
      localx = (x)paramz.a(i1);
      a.c.e locale;
      if (i5 == 0)
      {
        if (localx != null)
        {
          locale = (a.c.e)this.G.get(localx);
          int i3 = a(localx.h(), localx.i());
          i3 -= b(localx);
          if (i5 != 0) {
            break label297;
          }
          if (i3 < 1)
          {
            m localm1 = locale.l();
            do
            {
              do
              {
                if (!localm1.e()) {
                  break;
                }
                this.F.a(localm1.a(), 100.0D);
                localm1.f();
                if (i5 != 0) {
                  break label290;
                }
                if (i4 != 0) {
                  break label289;
                }
              } while (i4 == 0);
            } while (i5 != 0);
            if (i5 == 0) {
              if (this.wb) {
                this.K.a(locale, true);
              }
            }
            label289:
            label290:
            bool = false;
          }
        }
        i1++;
      }
      if (i4 != 0)
      {
        label297:
        double d = 2.0D * this.w;
        if (i5 == 0) {}
        i1 = paramBoolean1 ? 1 : 0;
        if (i5 == 0) {}
        i2 = paramz.size() - (paramBoolean2 ? 1 : 0);
        label513:
        label515:
        label625:
        label626:
        label628:
        do
        {
          if (i1 >= i2) {
            break;
          }
          localx = (x)paramz.a(i1);
          if (i5 == 0)
          {
            if (localx != null)
            {
              locale = (a.c.e)this.G.get(localx);
              if (i5 != 0) {
                continue;
              }
              if (localx.d() < d)
              {
                m localm2;
                if (i5 == 0) {
                  if (localx.d() < this.w + 1.0D)
                  {
                    localm2 = locale.l();
                    do
                    {
                      do
                      {
                        if (!localm2.e()) {
                          break;
                        }
                        this.F.a(localm2.a(), 100.0D);
                        localm2.f();
                        if (i5 != 0) {
                          break label515;
                        }
                        if (i4 != 0) {
                          break label513;
                        }
                      } while (i4 == 0);
                    } while (i5 != 0);
                    if (i5 == 0) {
                      if (this.wb) {
                        this.K.a(locale, true);
                      }
                    }
                    bool = false;
                    if (i5 != 0) {
                      continue;
                    }
                    if (i4 == 0) {
                      break label628;
                    }
                  }
                }
                if (i5 != 0) {
                  continue;
                }
                if (!a(paramz, d, i1))
                {
                  localm2 = locale.l();
                  do
                  {
                    do
                    {
                      if (!localm2.e()) {
                        break;
                      }
                      this.F.a(localm2.a(), 100.0D);
                      localm2.f();
                      if (i5 != 0) {
                        break label626;
                      }
                      if (i4 != 0) {
                        break label625;
                      }
                    } while (i4 == 0);
                  } while (i5 != 0);
                  if (i5 == 0) {
                    if (this.wb) {
                      this.K.a(locale, true);
                    }
                  }
                  bool = false;
                }
              }
            }
            i1++;
          }
        } while (i4 == 0);
      }
    }
    return bool;
  }
  
  private boolean a(z paramz, double paramDouble, int paramInt)
  {
    int i4 = Cc;
    int i3 = Bc;
    int i1 = 0;
    int i2 = 0;
    y localy1 = null;
    y localy2 = null;
    y localy3 = (y)paramz.a(paramInt);
    if (i4 == 0) {
      if (paramInt > 0)
      {
        localy1 = (y)paramz.a(paramInt - 1);
        break label146;
      }
    }
    if (i4 == 0) {
      if (localy3.l())
      {
        if (i4 == 0) {}
        i1 = this.p.n(this.z) < localy3.g() ? 1 : 0;
        if ((i4 == 0) && (i3 == 0)) {
          break label146;
        }
      }
    }
    if (i4 == 0) {}
    i1 = this.p.m(this.z) < localy3.f() ? 1 : 0;
    label146:
    if (i4 == 0) {
      if (paramInt < paramz.size() - 1)
      {
        localy2 = (y)paramz.a(paramInt + 1);
        break label265;
      }
    }
    if (i4 == 0) {
      if (localy3.l())
      {
        if (i4 == 0) {}
        i2 = this.p.n(this.A) < localy3.g() ? 1 : 0;
        if ((i4 == 0) && (i3 == 0)) {
          break label265;
        }
      }
    }
    if (i4 == 0) {}
    i2 = this.p.m(this.A) < localy3.f() ? 1 : 0;
    label265:
    if (i4 == 0) {
      if (localy1 == null)
      {
        if (i4 != 0) {
          break label360;
        }
        if (localy2 == null)
        {
          if (i4 == 0) {
            if (localy3.l())
            {
              d1 = localy3.a.b;
              d2 = localy3.b.b;
              if (i4 != 0) {
                break label942;
              }
              if (i3 == 0) {
                break label941;
              }
            }
          }
          d1 = localy3.a.a;
          d2 = localy3.b.a;
          if (i4 != 0) {
            break label942;
          }
          if (i3 == 0) {
            break label941;
          }
        }
      }
    }
    label360:
    if (i4 == 0) {
      if (localy1 == null)
      {
        if (i4 == 0)
        {
          if (i1 != 0)
          {
            if (i4 == 0) {}
            d1 = localy3.l() ? localy3.a.b : localy3.a.a;
            if (i4 == 0) {
              if (localy2.l())
              {
                d2 = Math.max(localy2.a.a, localy2.b.a);
                if (i4 != 0) {
                  break label942;
                }
                if (i3 == 0) {
                  break label941;
                }
              }
            }
            d2 = Math.max(localy2.a.b, localy2.b.b);
            if (i4 != 0) {
              break label942;
            }
            if (i3 == 0) {
              break label941;
            }
          }
          if (i4 != 0) {
            break label513;
          }
        }
        d2 = localy3.l() ? localy3.b.b : localy3.b.a;
        if (i4 == 0) {
          if (localy2.l())
          {
            d1 = Math.min(localy2.a.a, localy2.b.a);
            if (i4 != 0) {
              break label942;
            }
            if (i3 == 0) {
              break label941;
            }
          }
        }
        d1 = Math.min(localy2.a.b, localy2.b.b);
        if (i4 != 0) {
          break label942;
        }
        if (i3 == 0) {
          break label941;
        }
      }
    }
    label513:
    if (i4 == 0) {
      if (localy2 == null)
      {
        if (i4 == 0)
        {
          if (i2 != 0)
          {
            if (i4 == 0) {}
            d1 = localy3.l() ? localy3.a.b : localy3.a.a;
            if (i4 == 0) {
              if (localy1.l())
              {
                d2 = Math.max(localy1.a.a, localy1.b.a);
                if (i4 != 0) {
                  break label942;
                }
                if (i3 == 0) {
                  break label941;
                }
              }
            }
            d2 = Math.max(localy1.a.b, localy1.b.b);
            if (i4 != 0) {
              break label942;
            }
            if (i3 == 0) {
              break label941;
            }
          }
          if (i4 != 0) {
            break label751;
          }
        }
        label751:
        d2 = localy3.l() ? localy3.b.b : localy3.b.a;
        if (i4 == 0) {
          if (localy1.l())
          {
            d1 = Math.min(localy1.a.a, localy1.b.a);
            if (i4 != 0) {
              break label942;
            }
            if (i3 == 0) {
              break label941;
            }
          }
        }
        d1 = Math.min(localy1.a.b, localy1.b.b);
        if (i4 != 0) {
          break label942;
        }
        if (i3 == 0) {
          break label941;
        }
      }
    }
    if (i4 == 0) {
      if (localy3.l())
      {
        d1 = Math.min(localy1.a.b, localy2.a.b);
        d2 = Math.max(localy1.b.b, localy2.b.b);
        if (i4 != 0) {
          break label942;
        }
        if (i3 == 0) {
          break label941;
        }
      }
    }
    double d1 = Math.min(localy1.a.a, localy2.a.a);
    double d2 = Math.max(localy1.b.a, localy2.b.a);
    label941:
    label942:
    boolean bool = false;
    double d3 = paramDouble - localy3.d();
    double[] arrayOfDouble = new double[2];
    arrayOfDouble[0] = d1;
    arrayOfDouble[1] = d2;
    z localz1 = new z();
    bool = a(localy3, true, arrayOfDouble, localz1);
    double d4 = 0.0D;
    if (i4 == 0)
    {
      if (bool) {
        d4 = c(localz1);
      }
      arrayOfDouble[0] = d1;
      arrayOfDouble[1] = d2;
    }
    z localz2 = new z();
    bool = a(localy3, false, arrayOfDouble, localz2);
    double d5 = 0.0D;
    if (i4 == 0) {
      if (bool) {
        d5 = c(localz2);
      }
    }
    if (i4 == 0)
    {
      if (d4 + d5 < d3)
      {
        localy3.a(false);
        return false;
      }
      localy3.a(true);
      localy3.c(arrayOfDouble[0]);
      localy3.d(arrayOfDouble[1]);
    }
    if (i4 == 0) {
      if (d4 < d3)
      {
        if (i4 != 0) {
          break label1252;
        }
        if (d5 < d3)
        {
          if (i4 == 0)
          {
            if (d4 < d5)
            {
              localy3.a(localy3.h() - d4);
              localy3.b(localy3.i() + (d3 - d4));
            }
          }
          else
          {
            if (i4 != 0) {
              break label1239;
            }
            if (i3 == 0) {
              break label1223;
            }
          }
          localy3.a(localy3.h() - (d3 - d5));
          localy3.b(localy3.i() + d5);
          label1223:
          localy3.a(localz1);
          localy3.c(localz2);
          label1239:
          if (i4 != 0) {
            break label1463;
          }
          if (i3 == 0) {
            break label1462;
          }
        }
      }
    }
    label1252:
    if (i4 == 0) {
      if (d4 < d3)
      {
        localy3.a(localy3.h() - d4);
        localy3.b(localy3.i() + (d3 - d4));
        localy3.a(localz1);
        localy3.c(localz2);
        if (i4 != 0) {
          break label1463;
        }
        if (i3 == 0) {
          break label1462;
        }
      }
    }
    if (i4 == 0) {
      if (d5 < d3)
      {
        localy3.a(localy3.h() - (d3 - d5));
        localy3.b(localy3.i() + d5);
        localy3.a(localz1);
        localy3.c(localz2);
        if (i4 != 0) {
          break label1463;
        }
        if (i3 == 0) {
          break label1462;
        }
      }
    }
    if (i4 == 0)
    {
      if (d4 < d5)
      {
        localy3.a(localy3.h() - d3);
        localy3.b(localy3.i());
        localy3.a(localz1);
      }
    }
    else
    {
      if (i4 != 0) {
        break label1463;
      }
      if (i3 == 0) {
        break label1462;
      }
    }
    localy3.a(localy3.h());
    localy3.b(localy3.i() + d3);
    localy3.c(localz2);
    label1462:
    label1463:
    return true;
  }
  
  private boolean a(y paramy, boolean paramBoolean, double[] paramArrayOfDouble, z paramz)
  {
    int i2 = Cc;
    int i1 = Bc;
    z localz = paramBoolean ? paramy.k : paramy.l;
    double d1 = 0.0D;
    double d2 = paramArrayOfDouble[1];
    double d3 = paramArrayOfDouble[0];
    a.c.y localy = localz.h();
    do
    {
      if (!localy.e()) {
        break;
      }
      y localy1 = (y)localy.j();
      double d4 = localy1.j();
      double d5 = localy1.k();
      if (i1 != 0) {
        break label189;
      }
      if (d5 > paramArrayOfDouble[0]) {
        if (i2 == 0)
        {
          if (d4 < paramArrayOfDouble[1]) {
            paramz.add(localy1);
          }
        }
        else
        {
          if (i2 == 0)
          {
            if (d4 < d2) {
              d2 = d4;
            }
            if (i2 != 0) {}
          }
          else if (d5 > d3)
          {
            d3 = d5;
          }
          d1 += d5 - d4;
        }
      }
      localy.f();
    } while (i1 == 0);
    if ((i2 != 0) || (d2 <= paramArrayOfDouble[0]))
    {
      label189:
      if (i2 != 0) {
        break label219;
      }
      if (d3 >= paramArrayOfDouble[1]) {}
    }
    else
    {
      return false;
    }
    label219:
    if (i2 == 0) {}
    return d1 >= Math.abs(d3 - d2);
  }
  
  private double c(z paramz)
  {
    int i2 = Cc;
    int i1 = Bc;
    if (paramz.isEmpty()) {
      return 0.0D;
    }
    double d1 = (1.0D / 0.0D);
    a.c.y localy = paramz.h();
    do
    {
      if (!localy.e()) {
        break;
      }
      y localy1 = (y)localy.j();
      double d2 = localy1.d();
      if (i1 != 0) {
        break label91;
      }
      if (i2 == 0)
      {
        if (d2 < d1) {
          d1 = d2;
        }
        localy.f();
      }
    } while (i1 == 0);
    label91:
    return d1;
  }
  
  private boolean a(y paramy, boolean paramBoolean, double[] paramArrayOfDouble, double paramDouble)
  {
    int i2 = Cc;
    int i1 = Bc;
    z localz = paramBoolean ? paramy.k : paramy.l;
    double d1 = 0.0D;
    double d2 = paramy.k();
    double d3 = paramy.j();
    a.c.y localy = localz.h();
    do
    {
      if (!localy.e()) {
        break;
      }
      y localy1 = (y)localy.j();
      double d4 = localy1.j();
      double d5 = localy1.k();
      if (i1 != 0) {
        break label301;
      }
      if (localy1.d() > paramDouble)
      {
        if (i2 != 0) {
          continue;
        }
        if ((d5 > paramArrayOfDouble[0]) && ((i2 != 0) || (d4 < paramArrayOfDouble[1])))
        {
          if (i2 == 0) {
            if (d4 < d2) {
              d2 = d4;
            }
          }
          if (i2 == 0)
          {
            if (d5 > d3) {
              d3 = d5;
            }
            d1 += d5 - d4;
          }
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {}
        }
      }
      else
      {
        double[] arrayOfDouble = new double[2];
        arrayOfDouble[0] = d4;
        arrayOfDouble[1] = d5;
        double d6 = paramDouble - localy1.d();
        if (i2 != 0) {
          continue;
        }
        if (a(localy1, paramBoolean, arrayOfDouble, d6))
        {
          if (i2 == 0)
          {
            if (d4 < d2) {
              d2 = d4;
            }
            if (i2 != 0) {}
          }
          else if (d5 > d3)
          {
            d3 = d5;
          }
          d1 += d5 - d4;
        }
      }
      localy.f();
    } while (i1 == 0);
    label301:
    return (i2 == 0) && (d1 < d3 - d2);
  }
  
  private boolean d(z paramz)
  {
    int i4 = Cc;
    int i3 = Bc;
    if (i4 == 0) {
      if (paramz.isEmpty()) {
        return false;
      }
    }
    boolean bool = true;
    x localx;
    a.c.e locale;
    if (this.r)
    {
      a.c.y localy = paramz.h();
      label190:
      label191:
      do
      {
        if (!localy.e()) {
          break;
        }
        localx = (x)localy.j();
        if (i4 == 0)
        {
          if (localx != null)
          {
            locale = (a.c.e)this.G.get(localx);
            int i1 = a(localx.h(), localx.i());
            if (i4 != 0) {
              continue;
            }
            if (i1 < 1)
            {
              m localm1 = locale.l();
              do
              {
                do
                {
                  if (!localm1.e()) {
                    break;
                  }
                  this.F.a(localm1.a(), 100.0D);
                  localm1.f();
                  if (i4 != 0) {
                    break label191;
                  }
                  if (i3 != 0) {
                    break label190;
                  }
                } while (i3 == 0);
              } while (i4 != 0);
              if (i4 == 0) {
                if (this.wb) {
                  this.K.a(locale, true);
                }
              }
              bool = false;
            }
          }
          localy.f();
        }
      } while (i3 == 0);
    }
    double d = 2.0D * this.w;
    label385:
    label493:
    label494:
    label496:
    if (i4 == 0)
    {
      int i2 = 0;
      label383:
      do
      {
        if (i2 >= paramz.size()) {
          break;
        }
        localx = (x)paramz.a(i2);
        if (i4 == 0)
        {
          if (localx != null)
          {
            locale = (a.c.e)this.G.get(localx);
            if (i4 != 0) {
              continue;
            }
            if (localx.d() < d)
            {
              m localm2;
              if (i4 == 0) {
                if (localx.d() < this.w + 1.0D)
                {
                  localm2 = locale.l();
                  do
                  {
                    do
                    {
                      if (!localm2.e()) {
                        break;
                      }
                      this.F.a(localm2.a(), 100.0D);
                      localm2.f();
                      if (i4 != 0) {
                        break label385;
                      }
                      if (i3 != 0) {
                        break label383;
                      }
                    } while (i3 == 0);
                  } while (i4 != 0);
                  if (i4 == 0) {
                    if (this.wb) {
                      this.K.a(locale, true);
                    }
                  }
                  bool = false;
                  if (i4 != 0) {
                    continue;
                  }
                  if (i3 == 0) {
                    break label496;
                  }
                }
              }
              if (i4 != 0) {
                continue;
              }
              if (!a(paramz, d, i2))
              {
                localm2 = locale.l();
                do
                {
                  do
                  {
                    if (!localm2.e()) {
                      break;
                    }
                    this.F.a(localm2.a(), 100.0D);
                    localm2.f();
                    if (i4 != 0) {
                      break label494;
                    }
                    if (i3 != 0) {
                      break label493;
                    }
                  } while (i3 == 0);
                } while (i4 != 0);
                if (i4 == 0) {
                  if (this.wb) {
                    this.K.a(locale, true);
                  }
                }
                bool = false;
              }
            }
          }
          i2++;
        }
      } while (i3 == 0);
    }
    return bool;
  }
  
  private void z()
  {
    int i4 = Cc;
    int i3 = Bc;
    this.F.a(1.0D);
    a.c.d locald;
    x localx1;
    x localx2;
    if (i4 == 0) {
      if (this.r)
      {
        m localm1 = this.x.w();
        do
        {
          if (!localm1.e()) {
            break;
          }
          locald = localm1.a();
          localx1 = (x)this.H.get(locald.e());
          localx2 = (x)this.H.get(locald.f());
          int i1 = a(localx1.h(), localx1.i());
          int i2 = a(localx2.h(), localx2.i());
          if (i4 == 0)
          {
            if (i1 < 1)
            {
              this.F.a(locald, 100.0D);
              if (i4 != 0) {
                continue;
              }
              if (this.wb)
              {
                this.K.a(locald.e(), true);
                if (i4 != 0) {
                  continue;
                }
                if (i3 == 0) {}
              }
            }
            else
            {
              if (i4 != 0) {
                continue;
              }
            }
          }
          else if (i2 < 1)
          {
            this.F.a(locald, 100.0D);
            if (i4 != 0) {
              continue;
            }
            if (this.wb) {
              this.K.a(locald.f(), true);
            }
          }
          localm1.f();
        } while (i3 == 0);
      }
    }
    double d = this.w + 1.0D;
    m localm2 = this.x.w();
    label387:
    label444:
    do
    {
      if (!localm2.e()) {
        break;
      }
      locald = localm2.a();
      localx1 = (x)this.H.get(locald.e());
      localx2 = (x)this.H.get(locald.f());
      if (i4 == 0) {
        if (localx1.d() < d)
        {
          if (i4 != 0) {
            break label387;
          }
          if (!localx1.g)
          {
            this.F.a(locald, 100.0D);
            if (i4 != 0) {
              continue;
            }
            if (!this.wb) {
              break label444;
            }
            this.K.a(locald.e(), true);
            if (i4 != 0) {
              continue;
            }
            if (i3 == 0) {
              break label444;
            }
          }
        }
      }
      if (i4 == 0)
      {
        if (localx2.d() < d)
        {
          if (i4 != 0) {
            continue;
          }
          if (!localx2.g)
          {
            this.F.a(locald, 100.0D);
            if (i4 != 0) {
              continue;
            }
            if (this.wb) {
              this.K.a(locald.f(), true);
            }
          }
        }
        localm2.f();
      }
    } while (i3 == 0);
  }
  
  private void A()
  {
    int i3 = Cc;
    int i2 = Bc;
    Object localObject2;
    Object localObject3;
    if (i3 == 0) {
      if (this.r)
      {
        a.c.w localw = this.x.v();
        label180:
        label182:
        do
        {
          if (!localw.e()) {
            break;
          }
          a.c.e locale1 = localw.d();
          while ((i3 != 0) || (this.K.getBool(locale1)))
          {
            localObject1 = (x)this.H.get(locale1);
            int i1 = a(((x)localObject1).h(), ((x)localObject1).i());
            if (i1 >= 1)
            {
              localObject2 = locale1.l();
              do
              {
                if (!((m)localObject2).e()) {
                  break;
                }
                localObject3 = ((m)localObject2).a();
                this.F.a(localObject3, 1.0D);
                ((m)localObject2).f();
                if (i3 != 0) {
                  break label182;
                }
                if (i2 != 0) {
                  break label180;
                }
              } while (i2 == 0);
              if (i3 == 0) {
                this.K.a(locale1, false);
              }
            }
          }
          localw.f();
        } while (i2 == 0);
      }
    }
    double d = this.w + 1.0D;
    Object localObject1 = this.x.v();
    label359:
    label361:
    do
    {
      if (!((a.c.w)localObject1).e()) {
        break;
      }
      a.c.e locale2 = ((a.c.w)localObject1).d();
      while ((i3 != 0) || (this.K.getBool(locale2)))
      {
        localObject2 = (x)this.H.get(locale2);
        if ((i3 != 0) || ((((x)localObject2).d() >= d) || (!((x)localObject2).g)))
        {
          localObject3 = locale2.l();
          do
          {
            if (!((m)localObject3).e()) {
              break;
            }
            a.c.d locald = ((m)localObject3).a();
            this.F.a(locald, 1.0D);
            ((m)localObject3).f();
            if (i3 != 0) {
              break label361;
            }
            if (i2 != 0) {
              break label359;
            }
          } while (i2 == 0);
          if (i3 == 0) {
            this.K.a(locale2, false);
          }
        }
      }
      ((a.c.w)localObject1).f();
    } while (i2 == 0);
  }
  
  private void a(a.c.ab paramab, a.c.e parame1, a.c.e parame2, a.c.d paramd, double paramDouble1, double paramDouble2)
  {
    int i4 = Cc;
    int i3 = Bc;
    a.d.w localw = this.p.o(parame1);
    a.c.ab[] arrayOfab = new a.c.ab[4];
    int i1 = 0;
    do
    {
      while (i3 == 0)
      {
        if (i1 >= 4) {
          break;
        }
        arrayOfab[i1] = new a.c.ab();
        i1++;
      }
    } while (i4 != 0);
    Object localObject = paramab.l();
    label226:
    do
    {
      if (!((m)localObject).e()) {
        break;
      }
      a.c.d locald1 = ((m)localObject).a();
      x localx1 = (x)this.H.get(locald1.a(parame2));
      if (i3 != 0) {
        break label239;
      }
      if (localx1.l())
      {
        if (i4 == 0)
        {
          if (localx1.g() < localw.b)
          {
            arrayOfab[0].add(locald1);
            if (i4 != 0) {
              continue;
            }
            if (i3 == 0) {}
          }
          else
          {
            arrayOfab[1].add(locald1);
          }
        }
        else
        {
          if (i4 != 0) {
            continue;
          }
          if (i3 == 0) {}
        }
      }
      else
      {
        if (i4 == 0) {
          if (localx1.f() < localw.a)
          {
            arrayOfab[2].add(locald1);
            if (i4 != 0) {
              continue;
            }
            if (i3 == 0) {
              break label226;
            }
          }
        }
        arrayOfab[3].add(locald1);
      }
      ((m)localObject).f();
    } while (i3 == 0);
    label239:
    localObject = new a.c.d[4];
    int i2 = 0;
    label394:
    label546:
    label727:
    do
    {
      do
      {
        if (i2 >= 4) {
          break;
        }
        double d1 = (1.0D / 0.0D);
        if (i3 != 0) {
          break label762;
        }
        m localm2 = arrayOfab[i2].l();
        do
        {
          a.c.d locald3;
          do
          {
            do
            {
              if (!localm2.e()) {
                break;
              }
              locald3 = localm2.a();
              x localx3 = (x)this.H.get(locald3.a(parame2));
              if (i3 != 0) {
                break label653;
              }
              double d2;
              double d3;
              if (localx3.l())
              {
                if (i4 == 0) {
                  if (localw.a >= localx3.a.a)
                  {
                    if (i4 != 0) {
                      break label394;
                    }
                    if (localw.a <= localx3.b.a)
                    {
                      localObject[i2] = locald3;
                      if (i3 == 0) {
                        break;
                      }
                    }
                  }
                }
                d2 = Math.abs(localw.a - localx3.a.a);
                d3 = Math.abs(localw.a - localx3.b.a);
                if (i4 == 0) {
                  if (d2 < d1)
                  {
                    localObject[i2] = locald3;
                    d1 = d2;
                  }
                }
                if (i4 != 0) {
                  continue;
                }
                if (d3 < d1)
                {
                  localObject[i2] = locald3;
                  d1 = d3;
                  if (i4 != 0) {
                    continue;
                  }
                  if (i3 == 0) {}
                }
              }
              else
              {
                if (i4 == 0) {
                  if (localw.b >= localx3.a.b)
                  {
                    if (i4 != 0) {
                      break label546;
                    }
                    if (localw.b <= localx3.b.b)
                    {
                      localObject[i2] = locald3;
                      if (i3 == 0) {
                        break;
                      }
                    }
                  }
                }
                d2 = Math.abs(localw.b - localx3.a.b);
                d3 = Math.abs(localw.b - localx3.b.b);
                if (i4 == 0) {
                  if (d2 < d1)
                  {
                    localObject[i2] = locald3;
                    d1 = d2;
                  }
                }
                if (i4 != 0) {
                  continue;
                }
                if (d3 < d1)
                {
                  localObject[i2] = locald3;
                  d1 = d3;
                }
              }
              localm2.f();
            } while (i3 == 0);
          } while (i4 != 0);
          localm2 = arrayOfab[i2].l();
          do
          {
            if (!localm2.e()) {
              break label727;
            }
            locald3 = localm2.a();
            if (i3 != 0) {
              break;
            }
            if (locald3 == localObject[i2])
            {
              this.F.a(locald3, paramDouble1);
              if (i4 != 0) {
                continue;
              }
              if (i3 == 0) {}
            }
            else
            {
              this.F.a(locald3, paramDouble1 + paramDouble2);
            }
            localm2.f();
          } while (i3 == 0);
          i2++;
        } while (i4 != 0);
      } while (i3 == 0);
      if (i4 != 0) {
        break label899;
      }
    } while (i4 != 0);
    label653:
    if (d(parame1))
    {
      label762:
      m localm1 = paramab.l();
      do
      {
        if (!localm1.e()) {
          break;
        }
        a.c.d locald2 = localm1.a();
        x localx2 = (x)this.H.get(locald2.a(parame2));
        if ((i4 == 0) && (i3 != 0)) {
          return;
        }
        if (i4 == 0)
        {
          if (localx2.g)
          {
            if (i4 == 0) {
              if (paramd.f() == parame1)
              {
                this.F.a(locald2, 0.0D);
                if (i4 != 0) {
                  continue;
                }
              }
            }
            if ((i3 != 0) && (paramd.e() == parame1)) {
              this.F.a(locald2, 0.5D);
            }
          }
          localm1.f();
        }
      } while (i3 == 0);
    }
    if (i4 == 0) {
      label899:
      a(paramab);
    }
  }
  
  private void a(a.c.ab paramab, double paramDouble)
  {
    int i2 = Cc;
    int i1 = Bc;
    m localm = paramab.l();
    do
    {
      if (!localm.e()) {
        break;
      }
      a.c.d locald = localm.a();
      this.F.a(locald, paramDouble);
      localm.f();
      if ((i2 == 0) && (i1 != 0)) {
        return;
      }
    } while (i1 == 0);
    if (i2 == 0) {
      a(paramab);
    }
  }
  
  private void a(a.c.ab paramab)
  {
    int i2 = Cc;
    int i1 = Bc;
    m localm = paramab.l();
    do
    {
      if (!localm.e()) {
        break;
      }
      a.c.d locald = localm.a();
      ad localad = (ad)this.Pb.get(locald);
      if (i2 == 0)
      {
        if (localad != null) {
          this.F.a(locald, this.F.getDouble(locald) + localad.f());
        }
        localm.f();
      }
    } while (i1 == 0);
  }
  
  private void c(z paramz, x paramx, byte paramByte)
  {
    int i2 = Cc;
    int i1 = Bc;
    a.c.y localy = paramz.h();
    do
    {
      if (!localy.e()) {
        break;
      }
      a.c.e locale = (a.c.e)localy.j();
      nb localnb = (nb)this.E.get(locale);
      if (i2 == 0)
      {
        switch (paramByte)
        {
        case 1: 
          localnb.a.add(paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 2: 
          localnb.c.add(paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 8: 
          localnb.e.add(paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 4: 
          localnb.g.add(paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 10: 
          localnb.b.add(paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 20: 
          localnb.d.add(paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 80: 
          localnb.f.add(paramx);
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {
            break;
          }
        case 40: 
          localnb.h.add(paramx);
        }
        localy.f();
      }
    } while (i1 == 0);
  }
  
  private void a(x paramx1, x paramx2, byte paramByte)
  {
    int i2 = Cc;
    int i1 = Bc;
    nb localnb1 = (nb)this.D.get(paramx1);
    if (i2 == 0) {
      if (localnb1 == null) {
        return;
      }
    }
    nb localnb2 = new nb();
    if (i2 == 0)
    {
      switch (paramByte)
      {
      case 1: 
        localnb2.a = localnb1.a;
        localnb2.b = localnb1.b;
        c(localnb1.a, paramx2, (byte)2);
        c(localnb1.b, paramx2, (byte)20);
        if (i2 != 0) {
          return;
        }
        if (i1 == 0) {
          break;
        }
      case 2: 
        localnb2.c = localnb1.c;
        localnb2.d = localnb1.d;
        c(localnb1.c, paramx2, (byte)1);
        c(localnb1.d, paramx2, (byte)10);
        if (i2 != 0) {
          return;
        }
        if (i1 == 0) {
          break;
        }
      case 8: 
        localnb2.e = localnb1.e;
        localnb2.f = localnb1.f;
        c(localnb1.e, paramx2, (byte)4);
        c(localnb1.f, paramx2, (byte)40);
        if (i2 != 0) {
          return;
        }
        if (i1 == 0) {
          break;
        }
      case 4: 
        localnb2.g = localnb1.g;
        localnb2.h = localnb1.h;
        c(localnb1.g, paramx2, (byte)8);
        c(localnb1.h, paramx2, (byte)80);
      }
      ((sb)this.D).a(paramx2, localnb2);
    }
  }
  
  private void c(x paramx1, x paramx2)
  {
    int i2 = Cc;
    int i1 = Bc;
    a.c.e locale1 = (a.c.e)this.G.get(paramx1);
    a.c.e locale2 = this.x.i();
    this.H.a(locale2, paramx2);
    this.G.a(paramx2, locale2);
    double d1 = paramx2.h();
    double d2 = paramx2.i();
    m localm = locale1.l();
    do
    {
      if (!localm.e()) {
        break;
      }
      a.c.d locald1 = localm.a();
      a.c.e locale3 = locald1.a(locale1);
      x localx = (x)this.H.get(locale3);
      a.c.d locald2;
      if ((i2 != 0) || (localx != null))
      {
        if (i2 != 0) {
          continue;
        }
        if ((localx.j() < d2) && (localx.k() > d1))
        {
          locald2 = this.x.a(locale2, locale3);
          this.F.a(locald2, this.F.get(locald1));
          if (i2 != 0) {
            continue;
          }
          if (i1 == 0) {}
        }
      }
      else
      {
        locald2 = this.x.a(locale2, locale3);
        this.F.a(locald2, this.F.get(locald1));
      }
      localm.f();
    } while (i1 == 0);
  }
  
  private void a(x paramx1, x paramx2, boolean paramBoolean1, boolean paramBoolean2)
  {
    int i2 = Cc;
    int i1 = Bc;
    nb localnb1 = (nb)this.D.get(paramx1);
    if (i2 == 0) {
      if (localnb1 == null) {
        return;
      }
    }
    nb localnb2 = new nb();
    if (i2 == 0) {
      if (paramBoolean1)
      {
        if (i2 == 0)
        {
          if (paramBoolean2)
          {
            localnb2.a = localnb1.a;
            localnb2.b = localnb1.b;
            c(localnb1.a, paramx2, (byte)2);
            c(localnb1.b, paramx2, (byte)20);
            if (i2 != 0) {
              return;
            }
            if (i1 == 0) {
              break label277;
            }
          }
          localnb2.c = localnb1.c;
          localnb2.d = localnb1.d;
          c(localnb1.c, paramx2, (byte)1);
          c(localnb1.d, paramx2, (byte)10);
          if (i2 != 0) {
            return;
          }
        }
        if (i1 == 0) {
          break label277;
        }
      }
    }
    if (i2 == 0)
    {
      if (paramBoolean2)
      {
        localnb2.e = localnb1.e;
        localnb2.f = localnb1.f;
        c(localnb1.e, paramx2, (byte)4);
        c(localnb1.f, paramx2, (byte)40);
        if (i2 != 0) {
          return;
        }
      }
    }
    else {
      if (i1 == 0) {
        break label277;
      }
    }
    localnb2.g = localnb1.g;
    localnb2.h = localnb1.h;
    c(localnb1.g, paramx2, (byte)8);
    c(localnb1.h, paramx2, (byte)80);
    label277:
    ((sb)this.D).a(paramx2, localnb2);
  }
  
  private void a(x paramx1, x paramx2, boolean paramBoolean)
  {
    int i1 = Cc;
    nb localnb1 = (nb)this.D.get(paramx1);
    if (i1 == 0) {
      if (localnb1 == null) {
        return;
      }
    }
    nb localnb2 = new nb();
    if (i1 == 0)
    {
      if (paramBoolean)
      {
        localnb2.a = localnb1.a;
        localnb2.b = localnb1.b;
        c(localnb1.a, paramx2, (byte)2);
        c(localnb1.b, paramx2, (byte)20);
        localnb2.c = localnb1.c;
        localnb2.d = localnb1.d;
        c(localnb1.c, paramx2, (byte)1);
        c(localnb1.d, paramx2, (byte)10);
        if (i1 != 0) {
          return;
        }
        if (Bc == 0) {}
      }
      else
      {
        localnb2.e = localnb1.e;
        localnb2.f = localnb1.f;
        c(localnb1.e, paramx2, (byte)4);
        c(localnb1.f, paramx2, (byte)40);
        localnb2.g = localnb1.g;
        localnb2.h = localnb1.h;
        c(localnb1.g, paramx2, (byte)8);
      }
    }
    else {
      c(localnb1.h, paramx2, (byte)80);
    }
    ((sb)this.D).a(paramx2, localnb2);
  }
  
  private void e(x paramx1, x paramx2)
  {
    int i2 = Cc;
    int i1 = Bc;
    y localy = (y)paramx1;
    label170:
    label305:
    if ((i2 != 0) || (localy.u()))
    {
      z localz1 = localy.t();
      a.c.y localy1 = localz1.h();
      label224:
      label254:
      do
      {
        if (!localy1.e()) {
          break;
        }
        y.a_ locala_ = (y.a_)localy1.j();
        if (i2 == 0)
        {
          if (locala_.b >= paramx2.h())
          {
            if (i2 != 0) {
              continue;
            }
            if (locala_.b < paramx2.i())
            {
              q localq = (q)this.J.get(locala_.a);
              z localz2 = localq.f(true);
              v localv;
              q.a_ locala_1;
              if (i2 == 0)
              {
                if (localz2 != null)
                {
                  localv = localz2.f();
                  do
                  {
                    if (localv == null) {
                      break;
                    }
                    locala_1 = (q.a_)localv.c();
                    if (i2 != 0) {
                      break label254;
                    }
                    if (i1 != 0) {
                      break label267;
                    }
                    if (paramx1 == locala_1.a)
                    {
                      locala_1.a = paramx2;
                      localy.b(locala_);
                      ((y)paramx2).a(locala_);
                    }
                    localv = localz2.c(localv);
                    if (i2 != 0) {
                      break label224;
                    }
                  } while (i1 == 0);
                }
                localz2 = localq.f(false);
              }
              if (localz2 != null)
              {
                localv = localz2.f();
                do
                {
                  if (localv == null) {
                    break label305;
                  }
                  locala_1 = (q.a_)localv.c();
                  if (i2 != 0) {
                    break label170;
                  }
                  if (i1 != 0) {
                    break;
                  }
                  if (paramx1 == locala_1.a)
                  {
                    locala_1.a = paramx2;
                    localy.b(locala_);
                    ((y)paramx2).a(locala_);
                  }
                  localv = localz2.c(localv);
                } while (i1 == 0);
              }
            }
          }
          localy1.f();
        }
      } while (i1 == 0);
    }
    label267:
  }
  
  private void c(x paramx1, x paramx2, byte paramByte)
  {
    int i2 = Cc;
    int i1 = Bc;
    y localy = (y)paramx1;
    label287:
    label312:
    label329:
    if ((i2 != 0) || (localy.u()))
    {
      z localz1 = localy.t();
      a.c.y localy1 = localz1.h();
      label252:
      do
      {
        if (!localy1.e()) {
          break;
        }
        y.a_ locala_ = (y.a_)localy1.j();
        if (i2 == 0)
        {
          if (locala_.d == paramByte)
          {
            if (i2 != 0) {
              continue;
            }
            if (locala_.b >= paramx2.h())
            {
              if (i2 != 0) {
                continue;
              }
              if (locala_.b < paramx2.i())
              {
                q localq = (q)this.J.get(locala_.a);
                z localz2 = localq.f(true);
                v localv;
                q.a_ locala_1;
                if (i2 == 0)
                {
                  if (localz2 != null)
                  {
                    localv = localz2.f();
                    do
                    {
                      if (localv == null) {
                        break;
                      }
                      locala_1 = (q.a_)localv.c();
                      while (i2 != 0)
                      {
                        if (i2 != 0) {
                          break label287;
                        }
                        if (i1 != 0) {
                          break;
                        }
                      }
                      if (paramx1 == locala_1.a)
                      {
                        locala_1.a = paramx2;
                        localy.b(locala_);
                        if (i2 != 0) {
                          break label312;
                        }
                        ((y)paramx2).a(locala_);
                      }
                      localv = localz2.c(localv);
                      if (i2 != 0) {
                        break label252;
                      }
                    } while (i1 == 0);
                  }
                  localz2 = localq.f(false);
                }
                if (localz2 != null)
                {
                  localv = localz2.f();
                  do
                  {
                    if (localv == null) {
                      break label329;
                    }
                    locala_1 = (q.a_)localv.c();
                    if (i1 != 0) {
                      break;
                    }
                    if (paramx1 == locala_1.a)
                    {
                      locala_1.a = paramx2;
                      localy.b(locala_);
                      ((y)paramx2).a(locala_);
                    }
                    localv = localz2.c(localv);
                  } while (i1 == 0);
                }
              }
            }
          }
          localy1.f();
        }
      } while (i1 == 0);
    }
  }
  
  private boolean a(double[] paramArrayOfDouble, boolean paramBoolean)
  {
    int i2 = Cc;
    if (i2 == 0) {
      if (paramArrayOfDouble[1] <= paramArrayOfDouble[0])
      {
        paramArrayOfDouble[1] = paramArrayOfDouble[0];
        return true;
      }
    }
    if (i2 == 0) {
      if (paramBoolean)
      {
        if (i2 == 0) {
          if (this.r)
          {
            int i1 = a(paramArrayOfDouble[0], paramArrayOfDouble[1]);
            if (i2 != 0) {
              break label111;
            }
            if (i1 >= 1) {
              break label110;
            }
            paramArrayOfDouble[1] = paramArrayOfDouble[0];
            return true;
          }
        }
        if (i2 != 0) {
          break label111;
        }
        if (paramArrayOfDouble[1] - paramArrayOfDouble[0] < 2.0D * this.w)
        {
          paramArrayOfDouble[1] = paramArrayOfDouble[0];
          return true;
        }
      }
    }
    label110:
    label111:
    return false;
  }
  
  private boolean c(double[] paramArrayOfDouble, boolean paramBoolean)
  {
    int i2 = Cc;
    if (i2 == 0) {
      if (paramArrayOfDouble[2] >= paramArrayOfDouble[3])
      {
        paramArrayOfDouble[2] = paramArrayOfDouble[3];
        return true;
      }
    }
    if (i2 == 0) {
      if (paramBoolean)
      {
        if (i2 == 0) {
          if (this.r)
          {
            int i1 = a(paramArrayOfDouble[2], paramArrayOfDouble[3]);
            if (i2 != 0) {
              break label111;
            }
            if (i1 >= 1) {
              break label110;
            }
            paramArrayOfDouble[2] = paramArrayOfDouble[3];
            return true;
          }
        }
        if (i2 != 0) {
          break label111;
        }
        if (paramArrayOfDouble[3] - paramArrayOfDouble[2] < 2.0D * this.w)
        {
          paramArrayOfDouble[2] = paramArrayOfDouble[3];
          return true;
        }
      }
    }
    label110:
    label111:
    return false;
  }
  
  private void a(y paramy, z paramz, boolean paramBoolean)
  {
    int i2 = Cc;
    int i1 = Bc;
    a.c.y localy = paramz.h();
    do
    {
      if (!localy.e()) {
        break;
      }
      y localy1 = (y)localy.j();
      if (i2 == 0)
      {
        if (localy1.j() < paramy.k()) {
          if (i2 == 0)
          {
            if (localy1.k() > paramy.j()) {
              paramy.a(paramBoolean, localy1);
            }
          }
          else
          {
            if (i2 == 0) {}
            localy1.a(!paramBoolean, paramy);
          }
        }
        localy.f();
      }
    } while (i1 == 0);
  }
  
  private void d(x paramx)
  {
    int i2 = Cc;
    int i1 = Bc;
    y localy1 = (y)paramx;
    double d1 = localy1.h() - localy1.o();
    double d2 = localy1.p() - localy1.i();
    z localz = null;
    double[] arrayOfDouble1 = new double[4];
    double[] arrayOfDouble2 = new double[4];
    a.c.y localy;
    y localy2;
    a.d.w localw;
    y localy3;
    if ((i2 != 0) || (d1 > 0.0D))
    {
      if (paramx.l())
      {
        localy = localy1.u.h();
        while (localy.e())
        {
          localy2 = (y)localy.j();
          localz = new z(localy2.l);
          localy2.c(false, null);
          localy2.c(false);
          localw = new a.d.w(localy2.b.a - d1, localy2.b.b);
          arrayOfDouble1[0] = localy2.a.a;
          arrayOfDouble1[1] = localw.a;
          arrayOfDouble1[2] = localy2.b.a;
          arrayOfDouble1[3] = localy2.b.a;
          arrayOfDouble2[0] = localy2.a.b;
          arrayOfDouble2[1] = localy1.q();
          arrayOfDouble2[2] = localy1.r();
          arrayOfDouble2[3] = localy2.b.b;
          if ((i2 != 0) || (i1 != 0)) {
            break label693;
          }
          if (localy2.j() < localy1.q())
          {
            localy3 = (y)a(localy2, arrayOfDouble1, arrayOfDouble2, true);
            localy2.a(false, localy3);
            localy3.a(true, localy2);
            a(localy3, localz, false);
          }
          if (i2 == 0) {
            if (localy2.k() > localy1.r())
            {
              localy3 = (y)c(localy2, arrayOfDouble1, arrayOfDouble2, true);
              localy2.a(false, localy3);
              localy3.a(true, localy2);
              a(localy3, localz, false);
            }
          }
          localy2.b = localw;
          localy.f();
        }
      }
      localy = localy1.u.h();
      do
      {
        if (!localy.e()) {
          break;
        }
        localy2 = (y)localy.j();
        localz = new z(localy2.l);
        localy2.c(false, null);
        localy2.c(false);
        localw = new a.d.w(localy2.b.a, localy2.b.b - d1);
        arrayOfDouble2[0] = localy2.a.b;
        arrayOfDouble2[1] = localw.b;
        arrayOfDouble2[2] = localy2.b.b;
        arrayOfDouble2[3] = localy2.b.b;
        arrayOfDouble1[0] = localy2.a.a;
        arrayOfDouble1[1] = localy1.q();
        arrayOfDouble1[2] = localy1.r();
        arrayOfDouble1[3] = localy2.b.a;
        if (i1 != 0) {
          break label693;
        }
        if (localy2.j() < localy1.q())
        {
          localy3 = (y)a(localy2, arrayOfDouble1, arrayOfDouble2, false);
          localy2.a(false, localy3);
          localy3.a(true, localy2);
          a(localy3, localz, false);
        }
        if (i2 == 0)
        {
          if (localy2.k() > localy1.r())
          {
            localy3 = (y)c(localy2, arrayOfDouble1, arrayOfDouble2, false);
            localy2.a(false, localy3);
            localy3.a(true, localy2);
            a(localy3, localz, false);
          }
          localy2.b = localw;
          localy.f();
        }
      } while (i1 == 0);
    }
    if ((i2 == 0) && (d2 > 0.0D))
    {
      label693:
      if (paramx.l())
      {
        localy = localy1.v.h();
        do
        {
          if (!localy.e()) {
            break;
          }
          localy2 = (y)localy.j();
          localz = new z(localy2.k);
          localy2.c(true, null);
          localy2.c(true);
          localw = new a.d.w(localy2.a.a + d2, localy2.a.b);
          arrayOfDouble1[0] = localy2.a.a;
          arrayOfDouble1[1] = localy2.a.a;
          arrayOfDouble1[2] = localw.a;
          arrayOfDouble1[3] = localy2.b.a;
          arrayOfDouble2[0] = localy2.a.b;
          arrayOfDouble2[1] = localy1.q();
          arrayOfDouble2[2] = localy1.r();
          arrayOfDouble2[3] = localy2.b.b;
          if ((i2 == 0) && (i1 != 0)) {
            return;
          }
          if (i2 == 0) {
            if (localy2.j() < localy1.q())
            {
              localy3 = (y)a(localy2, arrayOfDouble1, arrayOfDouble2, true);
              localy2.a(true, localy3);
              localy3.a(false, localy2);
              a(localy3, localz, true);
            }
          }
          if (i2 == 0)
          {
            if (localy2.k() > localy1.r())
            {
              localy3 = (y)c(localy2, arrayOfDouble1, arrayOfDouble2, true);
              localy2.a(true, localy3);
              localy3.a(false, localy2);
              a(localy3, localz, true);
            }
            localy2.a = localw;
            localy.f();
          }
        } while (i1 == 0);
      }
      if (i2 == 0)
      {
        localy = localy1.v.h();
        do
        {
          if (!localy.e()) {
            break;
          }
          localy2 = (y)localy.j();
          localz = new z(localy2.k);
          localy2.c(true, null);
          localy2.c(true);
          localw = new a.d.w(localy2.a.a, localy2.a.b + d2);
          arrayOfDouble2[0] = localy2.a.b;
          arrayOfDouble2[1] = localy2.a.b;
          arrayOfDouble2[2] = localw.b;
          arrayOfDouble2[3] = localy2.b.b;
          arrayOfDouble1[0] = localy2.a.a;
          arrayOfDouble1[1] = localy1.q();
          arrayOfDouble1[2] = localy1.r();
          arrayOfDouble1[3] = localy2.b.a;
          if ((i2 == 0) && (i1 != 0)) {
            return;
          }
          if (i2 == 0) {
            if (localy2.j() < localy1.q())
            {
              localy3 = (y)a(localy2, arrayOfDouble1, arrayOfDouble2, false);
              localy2.a(true, localy3);
              localy3.a(false, localy2);
              a(localy3, localz, true);
            }
          }
          if (i2 == 0)
          {
            if (localy2.k() > localy1.r())
            {
              localy3 = (y)c(localy2, arrayOfDouble1, arrayOfDouble2, false);
              localy2.a(true, localy3);
              localy3.a(false, localy2);
              a(localy3, localz, true);
            }
            localy2.a = localw;
            localy.f();
          }
        } while (i1 == 0);
      }
    }
    else if (i2 == 0)
    {
      c((a.c.e)this.G.get(paramx));
    }
  }
  
  private void a(x paramx, a.d.w paramw1, a.d.w paramw2)
  {
    int i2 = Cc;
    int i1 = Bc;
    if (i2 == 0) {
      if (paramw1.a != paramw2.a) {
        throw new IllegalArgumentException("Segment is not vertical.");
      }
    }
    double[] arrayOfDouble1 = new double[4];
    double[] arrayOfDouble2 = new double[4];
    a.c.e locale = (a.c.e)this.G.get(paramx);
    double d1 = Math.min(paramw1.b, paramw2.b);
    double d2 = Math.max(paramw1.b, paramw2.b);
    double d3 = B();
    arrayOfDouble2[0] = paramx.a.b;
    arrayOfDouble2[1] = (d1 - d3);
    boolean bool1 = a(arrayOfDouble2, true);
    arrayOfDouble2[2] = (d2 + d3);
    arrayOfDouble2[3] = paramx.b.b;
    boolean bool2 = c(arrayOfDouble2, true);
    arrayOfDouble1[0] = paramx.a.a;
    arrayOfDouble1[1] = (paramw1.a - d3);
    boolean bool3 = a(arrayOfDouble1, false);
    arrayOfDouble1[2] = (paramw1.a + d3);
    arrayOfDouble1[3] = paramx.b.a;
    boolean bool4 = c(arrayOfDouble1, false);
    y localy1 = null;
    z localz = null;
    y localy2;
    a.d.w localw1;
    if (i2 == 0) {
      if (!bool3)
      {
        if (i2 != 0) {
          break label340;
        }
        if (!bool4)
        {
          localy1 = new y(arrayOfDouble1[0], arrayOfDouble2[0], arrayOfDouble1[1], arrayOfDouble2[3], true);
          e(paramx, localy1);
          a(paramx, localy1, true);
          c(paramx, localy1);
          localy2 = (y)paramx;
          localy2.c(true, localy1);
          localy1.a(true, localy2.k);
          localw1 = new a.d.w(arrayOfDouble1[2], arrayOfDouble2[0]);
          paramx.a = localw1;
          break label458;
        }
      }
    }
    if (!bool3)
    {
      label340:
      localy2 = (y)paramx;
      localz = new z(localy2.l);
      localy2.c(false, null);
      localy2.c(false);
      a.d.w localw2 = new a.d.w(arrayOfDouble1[1], arrayOfDouble2[3]);
      paramx.b = localw2;
    }
    else
    {
      localy2 = (y)paramx;
      localz = new z(localy2.k);
      localy2.c(true, null);
      localy2.c(true);
      localw1 = new a.d.w(arrayOfDouble1[2], arrayOfDouble2[0]);
      paramx.a = localw1;
    }
    label458:
    if (i2 == 0) {
      if (!bool1)
      {
        localy2 = (y)a(paramx, arrayOfDouble1, arrayOfDouble2, true);
        if (i2 == 0) {
          if (!bool3)
          {
            if (i2 != 0) {
              break label551;
            }
            if (!bool4)
            {
              localy1.a(false, localy2);
              localy2.a(true, localy1);
              localy2.a(false, (y)paramx);
              ((y)paramx).a(true, localy2);
              if (i2 != 0) {
                break label629;
              }
              if (i1 == 0) {
                break label627;
              }
            }
          }
        }
        if (i2 == 0)
        {
          if (!bool3)
          {
            ((y)paramx).a(false, localy2);
            localy2.a(true, (y)paramx);
            b(localy2, localz, false);
          }
        }
        else
        {
          if (i2 != 0) {
            break label629;
          }
          if (i1 == 0) {
            break label627;
          }
        }
        ((y)paramx).a(true, localy2);
        localy2.a(false, (y)paramx);
        b(localy2, localz, true);
      }
    }
    label551:
    label627:
    label629:
    if (i2 == 0)
    {
      if (!bool2) {
        localy2 = (y)c(paramx, arrayOfDouble1, arrayOfDouble2, true);
      }
    }
    else
    {
      if (i2 == 0) {
        if (!bool3)
        {
          if (i2 != 0) {
            break label720;
          }
          if (!bool4)
          {
            localy1.a(false, localy2);
            localy2.a(true, localy1);
            localy2.a(false, (y)paramx);
            ((y)paramx).a(true, localy2);
            if (i2 != 0) {
              return;
            }
            if (i1 == 0) {
              break label796;
            }
          }
        }
      }
      if (i2 == 0)
      {
        if (!bool3)
        {
          ((y)paramx).a(false, localy2);
          localy2.a(true, (y)paramx);
          b(localy2, localz, false);
          if (i2 != 0) {
            return;
          }
        }
      }
      else {
        if (i1 == 0) {
          break label796;
        }
      }
      ((y)paramx).a(true, localy2);
      localy2.a(false, (y)paramx);
      b(localy2, localz, true);
    }
    label720:
    c((a.c.e)this.G.get(paramx));
    label796:
  }
  
  private void b(y paramy, z paramz, boolean paramBoolean)
  {
    int i2 = Cc;
    int i1 = Bc;
    a.c.y localy = paramz.h();
    do
    {
      if (!localy.e()) {
        break;
      }
      y localy1 = (y)localy.j();
      if (i2 == 0)
      {
        if ((localy1.j() < paramy.k()) && ((i2 != 0) || (localy1.k() > paramy.j()))) {
          paramy.a(paramBoolean, localy1);
        }
        localy.f();
      }
    } while (i1 == 0);
  }
  
  private void c(x paramx, a.d.w paramw1, a.d.w paramw2)
  {
    int i2 = Cc;
    int i1 = Bc;
    if (i2 == 0) {
      if (paramw1.b != paramw2.b) {
        throw new IllegalArgumentException("Segment is not horizontal.");
      }
    }
    double[] arrayOfDouble1 = new double[4];
    double[] arrayOfDouble2 = new double[4];
    a.c.e locale = (a.c.e)this.G.get(paramx);
    double d1 = Math.min(paramw1.a, paramw2.a);
    double d2 = Math.max(paramw1.a, paramw2.a);
    if (i2 == 0) {
      if (this.r)
      {
        d3 = this.u / 2.0D;
        if (i2 != 0) {
          break label153;
        }
        if (i1 == 0) {
          break label126;
        }
      }
    }
    double d3 = this.w;
    label126:
    arrayOfDouble1[0] = paramx.a.a;
    arrayOfDouble1[1] = (d1 - d3);
    label153:
    boolean bool1 = a(arrayOfDouble1, true);
    arrayOfDouble1[2] = (d2 + d3);
    arrayOfDouble1[3] = paramx.b.a;
    boolean bool2 = c(arrayOfDouble1, true);
    arrayOfDouble2[0] = paramx.a.b;
    arrayOfDouble2[1] = (paramw1.b - d3);
    boolean bool3 = a(arrayOfDouble2, false);
    arrayOfDouble2[2] = (paramw1.b + d3);
    arrayOfDouble2[3] = paramx.b.b;
    boolean bool4 = c(arrayOfDouble2, false);
    y localy1 = null;
    z localz = null;
    y localy2;
    a.d.w localw1;
    if (i2 == 0) {
      if (!bool3)
      {
        if (i2 != 0) {
          break label373;
        }
        if (!bool4)
        {
          localy1 = new y(arrayOfDouble1[0], arrayOfDouble2[0], arrayOfDouble1[3], arrayOfDouble2[1], false);
          e(paramx, localy1);
          a(paramx, localy1, false);
          c(paramx, localy1);
          localy2 = (y)paramx;
          localy2.c(true, localy1);
          localy1.a(true, localy2.k);
          localw1 = new a.d.w(arrayOfDouble1[0], arrayOfDouble2[2]);
          paramx.a = localw1;
          break label491;
        }
      }
    }
    if (!bool3)
    {
      label373:
      localy2 = (y)paramx;
      localz = new z(localy2.l);
      localy2.c(false, null);
      localy2.c(false);
      a.d.w localw2 = new a.d.w(arrayOfDouble1[3], arrayOfDouble2[1]);
      paramx.b = localw2;
    }
    else
    {
      localy2 = (y)paramx;
      localz = new z(localy2.k);
      localy2.c(true, null);
      localy2.c(true);
      localw1 = new a.d.w(arrayOfDouble1[0], arrayOfDouble2[2]);
      paramx.a = localw1;
    }
    label491:
    if (i2 == 0) {
      if (!bool1)
      {
        localy2 = (y)a(paramx, arrayOfDouble1, arrayOfDouble2, false);
        if (i2 == 0) {
          if (!bool3)
          {
            if (i2 != 0) {
              break label584;
            }
            if (!bool4)
            {
              localy1.a(false, localy2);
              localy2.a(true, localy1);
              localy2.a(false, (y)paramx);
              ((y)paramx).a(true, localy2);
              if (i2 != 0) {
                break label662;
              }
              if (i1 == 0) {
                break label660;
              }
            }
          }
        }
        if (i2 == 0)
        {
          if (!bool3)
          {
            ((y)paramx).a(false, localy2);
            localy2.a(true, (y)paramx);
            b(localy2, localz, false);
          }
        }
        else
        {
          if (i2 != 0) {
            break label662;
          }
          if (i1 == 0) {
            break label660;
          }
        }
        ((y)paramx).a(true, localy2);
        localy2.a(false, (y)paramx);
        b(localy2, localz, true);
      }
    }
    label584:
    if (i2 == 0)
    {
      if (!bool2) {
        localy2 = (y)c(paramx, arrayOfDouble1, arrayOfDouble2, false);
      }
    }
    else
    {
      if (i2 == 0) {
        if (!bool3)
        {
          if (i2 != 0) {
            break label753;
          }
          if (!bool4)
          {
            localy1.a(false, localy2);
            localy2.a(true, localy1);
            localy2.a(false, (y)paramx);
            ((y)paramx).a(true, localy2);
            if (i2 != 0) {
              return;
            }
            if (i1 == 0) {
              break label829;
            }
          }
        }
      }
      label753:
      if (i2 == 0)
      {
        if (!bool3)
        {
          ((y)paramx).a(false, localy2);
          localy2.a(true, (y)paramx);
          b(localy2, localz, false);
          if (i2 != 0) {
            return;
          }
        }
      }
      else {
        if (i1 == 0) {
          break label829;
        }
      }
      ((y)paramx).a(true, localy2);
      localy2.a(false, (y)paramx);
      b(localy2, localz, true);
    }
    label660:
    label662:
    label829:
    c((a.c.e)this.G.get(paramx));
  }
  
  void c(a.c.e parame)
  {
    int i2 = Cc;
    int i1 = Bc;
    if (i2 == 0) {
      if (parame == null) {
        return;
      }
    }
    x localx1 = (x)this.H.get(parame);
    if (localx1 != null)
    {
      Rectangle2D.Double localDouble = new Rectangle2D.Double(localx1.a.a, localx1.a.b, localx1.b.a - localx1.a.a, localx1.b.b - localx1.a.b);
      m localm = parame.l();
      do
      {
        if (!localm.e()) {
          break;
        }
        a.c.e locale = localm.a().a(parame);
        x localx2 = (x)this.H.get(locale);
        if (i2 == 0)
        {
          if (localx2 != null)
          {
            if (i2 != 0) {
              continue;
            }
            if (!localDouble.intersects(localx2.a.a, localx2.a.b, localx2.b.a - localx2.a.a, localx2.b.b - localx2.a.b)) {
              parame.g().a(localm.a());
            }
          }
          localm.f();
        }
      } while (i1 == 0);
    }
  }
  
  private x a(x paramx, double[] paramArrayOfDouble1, double[] paramArrayOfDouble2, boolean paramBoolean)
  {
    int i2 = Cc;
    int i1 = Bc;
    double[] arrayOfDouble1 = new double[4];
    double[] arrayOfDouble2 = new double[2];
    y localy = null;
    if (i2 == 0) {
      if (paramBoolean)
      {
        arrayOfDouble1[0] = paramArrayOfDouble2[0];
        arrayOfDouble1[1] = paramArrayOfDouble2[1];
        b = 1;
        if (i2 == 0) {
          if (i1 == 0) {
            break label78;
          }
        }
      }
      else
      {
        arrayOfDouble1[0] = paramArrayOfDouble1[0];
        arrayOfDouble1[1] = paramArrayOfDouble1[1];
      }
    }
    byte b = 8;
    label78:
    a.c.e locale1 = (a.c.e)this.G.get(paramx);
    if ((i2 != 0) || (arrayOfDouble1[1] > arrayOfDouble1[0]))
    {
      if (paramBoolean)
      {
        localy = new y(paramArrayOfDouble1[1], paramArrayOfDouble2[0], paramArrayOfDouble1[2], paramArrayOfDouble2[1], true);
        c(paramx, localy, b);
      }
      else
      {
        localy = new y(paramArrayOfDouble1[0], paramArrayOfDouble2[1], paramArrayOfDouble1[1], paramArrayOfDouble2[2], false);
        c(paramx, localy, b);
      }
      a.c.e locale2 = this.x.i();
      this.H.a(locale2, localy);
      this.G.a(localy, locale2);
      m localm = locale1.l();
      label343:
      label352:
      do
      {
        if (!localm.e()) {
          break;
        }
        a.c.d locald1 = localm.a();
        a.c.e locale3 = locald1.a(locale1);
        x localx = (x)this.H.get(locale3);
        if (i1 != 0) {
          break label432;
        }
        if (localx != null)
        {
          if (i2 == 0)
          {
            if (paramBoolean)
            {
              arrayOfDouble2[0] = localx.a.b;
              arrayOfDouble2[1] = localx.b.b;
            }
          }
          else
          {
            if (i2 != 0) {
              break label352;
            }
            if (i1 == 0) {
              break label343;
            }
          }
          arrayOfDouble2[0] = localx.a.a;
          arrayOfDouble2[1] = localx.b.a;
          if (i2 != 0) {
            continue;
          }
          if ((arrayOfDouble2[0] < arrayOfDouble1[1]) && (arrayOfDouble2[1] > arrayOfDouble1[0]))
          {
            a.c.d locald2 = this.x.a(locale2, locale3);
            this.F.a(locald2, this.F.get(locald1));
          }
        }
        localm.f();
      } while (i1 == 0);
      if (i2 == 0) {
        a(paramx, localy, b);
      }
    }
    label432:
    return localy;
  }
  
  private x c(x paramx, double[] paramArrayOfDouble1, double[] paramArrayOfDouble2, boolean paramBoolean)
  {
    int i2 = Cc;
    int i1 = Bc;
    double[] arrayOfDouble1 = new double[4];
    double[] arrayOfDouble2 = new double[2];
    y localy = null;
    if (i2 == 0) {
      if (paramBoolean)
      {
        arrayOfDouble1[2] = paramArrayOfDouble2[2];
        arrayOfDouble1[3] = paramArrayOfDouble2[3];
        b = 2;
        if (i2 == 0) {
          if (i1 == 0) {
            break label77;
          }
        }
      }
      else
      {
        arrayOfDouble1[2] = paramArrayOfDouble1[2];
        arrayOfDouble1[3] = paramArrayOfDouble1[3];
      }
    }
    byte b = 4;
    label77:
    a.c.e locale1 = (a.c.e)this.G.get(paramx);
    if ((i2 != 0) || (arrayOfDouble1[2] < arrayOfDouble1[3]))
    {
      if (paramBoolean)
      {
        localy = new y(paramArrayOfDouble1[1], paramArrayOfDouble2[2], paramArrayOfDouble1[2], paramArrayOfDouble2[3], true);
        c(paramx, localy, b);
      }
      else
      {
        localy = new y(paramArrayOfDouble1[2], paramArrayOfDouble2[1], paramArrayOfDouble1[3], paramArrayOfDouble2[2], false);
        c(paramx, localy, b);
      }
      a.c.e locale2 = this.x.i();
      this.H.a(locale2, localy);
      this.G.a(localy, locale2);
      m localm = locale1.l();
      label342:
      label351:
      do
      {
        if (!localm.e()) {
          break;
        }
        a.c.d locald1 = localm.a();
        a.c.e locale3 = locald1.a(locale1);
        x localx = (x)this.H.get(locale3);
        if (i1 != 0) {
          break label431;
        }
        if (localx != null)
        {
          if (i2 == 0)
          {
            if (paramBoolean)
            {
              arrayOfDouble2[0] = localx.a.b;
              arrayOfDouble2[1] = localx.b.b;
            }
          }
          else
          {
            if (i2 != 0) {
              break label351;
            }
            if (i1 == 0) {
              break label342;
            }
          }
          arrayOfDouble2[0] = localx.a.a;
          arrayOfDouble2[1] = localx.b.a;
          if (i2 != 0) {
            continue;
          }
          if ((arrayOfDouble2[0] < arrayOfDouble1[3]) && (arrayOfDouble2[1] > arrayOfDouble1[2]))
          {
            a.c.d locald2 = this.x.a(locale2, locale3);
            this.F.a(locald2, this.F.get(locald1));
          }
        }
        localm.f();
      } while (i1 == 0);
      if (i2 == 0) {
        a(paramx, localy, b);
      }
    }
    label431:
    return localy;
  }
  
  private void e(x paramx, a.d.w paramw1, a.d.w paramw2)
  {
    int i1 = Cc;
    if (i1 == 0)
    {
      if (paramx.l())
      {
        if (i1 != 0) {
          break label39;
        }
        a(paramx, paramw1, paramw2);
      }
    }
    else if (Bc == 0) {
      return;
    }
    label39:
    c(paramx, paramw1, paramw2);
  }
  
  private z e(z paramz)
  {
    int i2 = Cc;
    int i1 = Bc;
    Object localObject1 = null;
    x localx2 = (x)paramz.a();
    boolean bool = localx2.l();
    double d1 = bool ? localx2.g() : localx2.f();
    a.c.e locale = (a.c.e)this.G.get(localx2);
    double d3 = 1.7976931348623157E+308D;
    Object localObject2 = locale.o();
    do
    {
      if (!((a.c.w)localObject2).e()) {
        break;
      }
      x localx1 = (x)this.H.get(((a.c.w)localObject2).d());
      if (i1 != 0) {
        break label188;
      }
      if (localx1 != null)
      {
        double d2 = bool ? localx1.g() : localx1.f();
        if (i2 != 0) {
          continue;
        }
        if (Math.abs(d1 - d2) < d3)
        {
          localObject1 = localx1;
          d3 = Math.abs(d1 - d2);
        }
      }
      ((a.c.w)localObject2).f();
    } while (i1 == 0);
    if ((i2 == 0) && (localObject1 == null)) {
      label188:
      throw new IllegalStateException("Sightpatch missing for special case treatment");
    }
    localObject2 = new z();
    ((z)localObject2).add(localx2);
    ((z)localObject2).add(localObject1);
    ((z)localObject2).add(localx2);
    return localObject2;
  }
  
  private void a(a.c.d paramd, z paramz)
  {
    a(paramd, paramz, true);
  }
  
  private void a(a.c.d paramd, z paramz, boolean paramBoolean)
  {
    int i3 = Cc;
    int i2 = Bc;
    z localz1 = new z();
    q localq = (q)this.J.get(paramd);
    a.d.w localw = d(paramd);
    this.B = paramd;
    Object localObject4;
    Object localObject1;
    Object localObject2;
    if ((i3 != 0) || (paramz.size() == 1))
    {
      localx1 = (x)paramz.a();
      this.C = true;
      localObject3 = a(paramd.e(), localx1, localw);
      this.C = false;
      localObject4 = a(paramd.f(), localx1, localw);
      if (i3 == 0) {
        if (localq.b(true))
        {
          if (i3 != 0) {
            break label220;
          }
          if (!localq.b(false))
          {
            localObject1 = localObject3;
            localObject2 = localx1.l() ? new a.d.w(this.p.r(paramd).a, ((a.d.w)localObject4).b) : new a.d.w(((a.d.w)localObject4).a, this.p.r(paramd).b);
            localq.c(false, true);
            if (i3 != 0) {
              break label336;
            }
            if (i2 == 0) {
              break label330;
            }
          }
        }
      }
      label220:
      if (((i3 != 0) || (!localq.b(true))) && ((i3 != 0) || (localq.b(false))))
      {
        localObject1 = localx1.l() ? new a.d.w(this.p.s(paramd).a, ((a.d.w)localObject3).b) : new a.d.w(((a.d.w)localObject3).a, this.p.s(paramd).b);
        localObject2 = localObject4;
        localq.c(true, true);
        if (i3 != 0) {
          break label336;
        }
        if (i2 == 0) {}
      }
      else
      {
        localObject1 = localObject3;
        localObject2 = localObject4;
      }
      label330:
      label336:
      if (i3 != 0) {
        break label495;
      }
      if (localq.b(true))
      {
        if (i3 != 0) {
          break label495;
        }
        if (localq.b(false))
        {
          if (i3 == 0) {
            if (i3 != 0) {}
          }
          if (i3 == 0) {}
          int i1 = this.p.r(paramd).b == this.p.s(paramd).b ? 1 : localx1.l() ? 0 : this.p.r(paramd).a == this.p.s(paramd).a ? 1 : 0;
          if (i3 != 0) {
            break label495;
          }
          if (i1 == 0)
          {
            paramz = e(paramz);
            if (i3 != 0) {
              break label495;
            }
            if (i2 == 0) {}
          }
        }
      }
    }
    else
    {
      localObject1 = null;
      localObject2 = null;
    }
    x localx1 = (x)paramz.a();
    label495:
    if (i3 == 0) {
      if (localq.b(true))
      {
        localObject3 = this.p.r(paramd);
        if ((i3 == 0) && (i2 == 0)) {
          break label611;
        }
      }
    }
    if (i3 == 0) {
      if (localq.d(true))
      {
        localObject3 = localObject1;
        if (i3 == 0) {
          if (i2 == 0) {
            break label611;
          }
        }
      }
      else
      {
        if (i3 != 0) {
          break label598;
        }
        this.C = true;
      }
    }
    if (paramz.size() == 1)
    {
      if (i3 != 0) {
        break label609;
      }
      localObject3 = a(paramd.e(), paramd.f(), localx1, localw);
      if (i2 == 0) {
        break label611;
      }
    }
    label598:
    label609:
    Object localObject3 = a(paramd.e(), localx1, localw);
    label611:
    x localx2 = localx1;
    this.p.c(paramd, (a.d.w)localObject3);
    localz1.add(localObject3);
    double d1 = ((a.d.w)localObject3).a;
    double d2 = ((a.d.w)localObject3).b;
    x localx3 = (x)paramz.d();
    Object localObject5;
    if (i3 == 0) {
      if (localq.b(false))
      {
        localObject5 = this.p.s(paramd);
        if ((i3 == 0) && (i2 == 0)) {
          break label857;
        }
      }
    }
    if (localq.d(false))
    {
      localObject5 = localObject2;
      if (i3 == 0) {
        if (i2 == 0) {
          break label857;
        }
      }
    }
    else
    {
      this.C = false;
    }
    Object localObject6 = a(paramd.f(), localx3, localw);
    if (((i3 != 0) || (paramz.size() == 1)) && ((i3 != 0) || ((this.Jb) || ((i3 == 0) && ((this.Kb) && ((i3 == 0) && (this.Ib)))) || ((i3 != 0) || (this.Hb)))))
    {
      if (localx3.l())
      {
        localObject5 = new a.d.w(d1, ((a.d.w)localObject6).b);
        if (i3 != 0) {
          break label861;
        }
        if (i2 == 0) {}
      }
      else
      {
        localObject5 = new a.d.w(((a.d.w)localObject6).a, d2);
        if (i3 != 0) {
          break label861;
        }
        if (i2 == 0) {}
      }
    }
    else {
      localObject5 = localObject6;
    }
    label857:
    localObject6 = localObject3;
    label861:
    Object localObject7 = paramz.f().a();
    label1065:
    label1069:
    label1117:
    label1118:
    label1142:
    label1531:
    label1535:
    do
    {
      if (localObject7 == null) {
        break;
      }
      localx2 = localx1;
      localObject4 = localObject6;
      localx1 = (x)((v)localObject7).c();
      boolean bool = a((v)localObject7, (a.d.w)localObject3, (a.d.w)localObject5);
      if (i3 != 0) {
        break label2222;
      }
      if (i2 != 0) {
        break label2217;
      }
      if (((v)localObject7).a() != null)
      {
        if (i3 == 0) {
          if (localx1.l())
          {
            if (i3 == 0) {
              if (this.r)
              {
                if (i3 == 0) {
                  if (!this.Kb)
                  {
                    if (i3 != 0) {
                      break label1069;
                    }
                    if (!this.Hb) {
                      break label1065;
                    }
                    if (i3 != 0) {
                      break label1069;
                    }
                    if (!bool) {
                      break label1065;
                    }
                  }
                }
                if (i3 == 0)
                {
                  if (Math.abs(localx1.a.a - localw.a) <= Math.abs(localx1.b.a - localw.a))
                  {
                    d1 = a(localx1, true, true);
                    if (i3 != 0) {
                      break label1142;
                    }
                    if (i2 == 0) {}
                  }
                  else
                  {
                    d1 = a(localx1, true, false);
                  }
                }
                else
                {
                  if (i3 != 0) {
                    break label1142;
                  }
                  if (i2 != 0)
                  {
                    if (i3 == 0) {
                      if (!this.Jb)
                      {
                        if (i3 != 0) {
                          break label1118;
                        }
                        if (!this.Hb) {
                          break label1117;
                        }
                        if (i3 == 0) {
                          if (bool) {
                            break label1117;
                          }
                        }
                      }
                      else
                      {
                        d1 = f(localx1);
                      }
                    }
                    if (i3 != 0) {
                      break label1142;
                    }
                    if (i2 != 0) {
                      d1 = a(localx1, true, true);
                    }
                  }
                }
                localObject6 = new a.d.w(d1, d2);
                if (i3 != 0) {
                  break label1936;
                }
                if (i2 == 0) {
                  break label1923;
                }
              }
            }
            if (i3 == 0) {
              if (!this.Kb)
              {
                if (i3 != 0) {
                  break label1305;
                }
                if (!this.Hb) {
                  break label1301;
                }
                if (i3 != 0) {
                  break label1305;
                }
                if (!bool) {
                  break label1301;
                }
              }
            }
            if (i3 == 0)
            {
              if (Math.abs(localx1.a.a - localw.a) <= Math.abs(localx1.b.a - localw.a))
              {
                localObject6 = new a.d.w(d1 = localx1.a.a + this.w, d2);
                if (i3 != 0) {
                  break label1936;
                }
                if (i2 == 0) {
                  break label1923;
                }
              }
              localObject6 = new a.d.w(d1 = localx1.b.a - this.w, d2);
            }
            if (i3 != 0) {
              break label1936;
            }
            if (i2 == 0) {
              break label1923;
            }
            if (i3 == 0)
            {
              if (!this.Jb)
              {
                if (i3 != 0) {
                  break label1394;
                }
                if (this.Hb)
                {
                  if (i3 != 0) {
                    break label1394;
                  }
                  if (bool) {}
                }
              }
              else
              {
                localObject6 = new a.d.w(d1 = e(localx1), d2);
              }
            }
            else
            {
              if (i3 != 0) {
                break label1936;
              }
              if (i2 == 0) {
                break label1923;
              }
            }
            localObject6 = new a.d.w(d1 = localx1.a.a + this.w, d2);
            if (i3 != 0) {
              break label1936;
            }
            if (i2 == 0) {
              break label1923;
            }
          }
        }
        if (i3 == 0) {
          if (this.r)
          {
            if (i3 == 0) {
              if (!this.Kb)
              {
                if (i3 != 0) {
                  break label1535;
                }
                if (!this.Hb) {
                  break label1531;
                }
                if (i3 != 0) {
                  break label1535;
                }
                if (!bool) {
                  break label1531;
                }
              }
            }
            if (i3 == 0)
            {
              if (Math.abs(localx1.a.b - localw.b) <= Math.abs(localx1.b.b - localw.b))
              {
                d2 = a(localx1, false, true);
                if (i3 != 0) {
                  break label1608;
                }
                if (i2 == 0) {}
              }
              else
              {
                d2 = a(localx1, false, false);
              }
            }
            else
            {
              if (i3 != 0) {
                break label1608;
              }
              if (i2 != 0)
              {
                if (i3 == 0) {
                  if (!this.Jb)
                  {
                    if (i3 != 0) {
                      break label1584;
                    }
                    if (!this.Hb) {
                      break label1583;
                    }
                    if (i3 == 0) {
                      if (bool) {
                        break label1583;
                      }
                    }
                  }
                  else
                  {
                    d2 = f(localx1);
                  }
                }
                if (i3 != 0) {
                  break label1608;
                }
                if (i2 != 0) {
                  d2 = a(localx1, false, true);
                }
              }
            }
            localObject6 = new a.d.w(d1, d2);
            if (i3 != 0) {
              break label1936;
            }
            if (i2 == 0) {
              break label1923;
            }
          }
        }
        if (i3 == 0) {
          if (!this.Kb)
          {
            if (i3 != 0) {
              break label1771;
            }
            if (!this.Hb) {
              break label1767;
            }
            if (i3 != 0) {
              break label1771;
            }
            if (!bool) {
              break label1767;
            }
          }
        }
        if (i3 == 0)
        {
          if (Math.abs(localx1.a.b - localw.b) <= Math.abs(localx1.b.b - localw.b))
          {
            localObject6 = new a.d.w(d1, d2 = localx1.a.b + this.w);
            if (i3 != 0) {
              break label1936;
            }
            if (i2 == 0) {}
          }
          else
          {
            localObject6 = new a.d.w(d1, d2 = localx1.b.b - this.w);
          }
        }
        else
        {
          if (i3 != 0) {
            break label1936;
          }
          if (i2 != 0)
          {
            if (i3 == 0)
            {
              if (!this.Jb)
              {
                if (i3 != 0) {
                  break label1860;
                }
                if (this.Hb)
                {
                  if (i3 != 0) {
                    break label1860;
                  }
                  if (bool) {}
                }
              }
              else
              {
                localObject6 = new a.d.w(d1, d2 = e(localx1));
              }
            }
            else
            {
              if (i3 != 0) {
                break label1936;
              }
              if (i2 == 0) {
                break label1923;
              }
            }
            localObject6 = new a.d.w(d1, d2 = localx1.a.b + this.w);
            if (i3 != 0) {
              break label1936;
            }
            if (i2 == 0) {}
          }
        }
      }
      else
      {
        if (i3 == 0)
        {
          if (localx1.l()) {
            localObject6 = new a.d.w(((a.d.w)localObject5).a, d2);
          }
        }
        else
        {
          if (i3 != 0) {
            break label1936;
          }
          if (i2 == 0) {
            break label1923;
          }
        }
        localObject6 = new a.d.w(d1, ((a.d.w)localObject5).b);
      }
      localz1.add(localObject6);
      if (i3 == 0) {
        if (localx1.g)
        {
          if (i3 == 0)
          {
            if (localx1.l())
            {
              if (i3 == 0)
              {
                if (((a.d.w)localObject4).a < ((a.d.w)localObject5).a)
                {
                  localObject6 = new a.d.w(((a.d.w)localObject5).a - 2.0D * B() - 1.0D, d2);
                  if (i3 != 0) {
                    break label2134;
                  }
                  if (i2 == 0) {
                    break label2133;
                  }
                }
                localObject6 = new a.d.w(((a.d.w)localObject5).a + 2.0D * B() + 1.0D, d2);
              }
              if (i3 != 0) {
                break label2134;
              }
              if (i2 == 0) {
                break label2133;
              }
            }
            if (i3 != 0) {}
          }
          else if (((a.d.w)localObject4).b < ((a.d.w)localObject5).b)
          {
            localObject6 = new a.d.w(d1, ((a.d.w)localObject5).b - 2.0D * B() - 1.0D);
            if (i3 != 0) {
              break label2134;
            }
            if (i2 == 0) {
              break label2133;
            }
          }
          localObject6 = new a.d.w(d1, ((a.d.w)localObject5).b + 2.0D * B() + 1.0D);
        }
      }
      if (i3 == 0)
      {
        if (paramBoolean)
        {
          if (i3 != 0) {
            continue;
          }
          if (!localx2.g)
          {
            if (((y)localx2).n()) {
              d(localx2);
            }
            e(localx2, (a.d.w)localObject4, (a.d.w)localObject6);
          }
        }
        localObject7 = ((v)localObject7).a();
      }
    } while (i2 == 0);
    label1301:
    label1305:
    label1394:
    this.p.d(paramd, (a.d.w)localObject5);
    label1583:
    label1584:
    label1608:
    label1767:
    label1771:
    if (i3 == 0) {
      localz1.add(localObject5);
    }
    label1860:
    label2133:
    label2134:
    if (i3 == 0) {
      if (localx2.g)
      {
        if (i3 != 0) {
          break label2445;
        }
        if (!localx3.g)
        {
          if (i3 == 0)
          {
            if (localx2.l())
            {
              if (i3 == 0)
              {
                if (((a.d.w)localObject6).a > ((a.d.w)localObject5).a)
                {
                  localObject6 = new a.d.w(((a.d.w)localObject6).a - 2.0D * B() - 1.0D, ((a.d.w)localObject6).b);
                  if (i3 != 0) {
                    break label2445;
                  }
                  if (i2 == 0) {
                    break label2444;
                  }
                }
                localObject6 = new a.d.w(((a.d.w)localObject6).a + 2.0D * B() + 1.0D, ((a.d.w)localObject6).b);
              }
              if (i3 != 0) {
                break label2445;
              }
              if (i2 == 0) {
                break label2444;
              }
            }
            if (i3 != 0) {}
          }
          else if (((a.d.w)localObject6).b > ((a.d.w)localObject5).b)
          {
            localObject6 = new a.d.w(((a.d.w)localObject6).a, ((a.d.w)localObject6).b - 2.0D * B() - 1.0D);
            if (i3 != 0) {
              break label2445;
            }
            if (i2 == 0) {
              break label2444;
            }
          }
          localObject6 = new a.d.w(((a.d.w)localObject6).a, ((a.d.w)localObject6).b + 2.0D * B() + 1.0D);
        }
      }
    }
    label1923:
    label1936:
    label2217:
    label2222:
    if (i3 == 0)
    {
      if (paramBoolean)
      {
        if (i3 != 0) {
          break label2514;
        }
        if (!localx3.g)
        {
          if (((y)localx3).n()) {
            d(localx3);
          }
          e(localx3, (a.d.w)localObject6, (a.d.w)localObject5);
        }
      }
      this.p.a(paramd, localz1);
      if (i3 != 0) {
        break label2631;
      }
    }
    label2444:
    label2445:
    label2514:
    z localz2;
    a.c.y localy;
    q.a_ locala_;
    y localy1;
    double d3;
    if (localq.b(true))
    {
      localObject7 = this.p.r(paramd);
      localz2 = localq.f(true);
      localy = localz2.h();
      do
      {
        if (!localy.e()) {
          break;
        }
        locala_ = (q.a_)localy.j();
        localy1 = (y)locala_.a;
        if (i2 != 0) {
          break label2634;
        }
        d3 = localy1.l() ? ((a.d.w)localObject7).a : ((a.d.w)localObject7).b;
        localy1.a(paramd, d3, true);
        localy.f();
      } while (i2 == 0);
    }
    label2631:
    if ((i3 == 0) && (localq.b(false)))
    {
      label2634:
      localObject7 = this.p.s(paramd);
      localz2 = localq.f(false);
      localy = localz2.h();
      do
      {
        if (!localy.e()) {
          break;
        }
        locala_ = (q.a_)localy.j();
        localy1 = (y)locala_.a;
        if ((i3 == 0) && (i2 != 0)) {
          return;
        }
        d3 = localy1.l() ? ((a.d.w)localObject7).a : ((a.d.w)localObject7).b;
        localy1.a(paramd, d3, false);
        localy.f();
      } while (i2 == 0);
    }
    if (i3 == 0) {
      b(paramd, paramz);
    }
  }
  
  private boolean a(v paramv, a.d.w paramw1, a.d.w paramw2)
  {
    int i2 = Cc;
    int i1 = Bc;
    x localx1 = (x)paramv.c();
    boolean bool = localx1.l();
    double d1 = bool ? localx1.f() : localx1.g();
    if ((i2 != 0) || (paramv.a() != null))
    {
      if (i2 != 0) {
        break label79;
      }
      if (paramv.b() != null) {}
    }
    else
    {
      return false;
    }
    label79:
    v localv = paramv.b().b();
    if (i2 == 0) {
      if (localv == null)
      {
        d2 = bool ? paramw1.a() : paramw1.b();
        if (i1 == 0) {
          break label144;
        }
      }
    }
    Object localObject = (x)localv.c();
    double d2 = bool ? ((x)localObject).f() : ((x)localObject).g();
    label144:
    localObject = paramv.a().a();
    if (i2 == 0) {
      if (localObject == null)
      {
        d3 = bool ? paramw2.a() : paramw2.b();
        if (i2 != 0) {
          break label226;
        }
        if (i1 == 0) {
          break label221;
        }
      }
    }
    x localx2 = (x)((v)localObject).c();
    double d3 = bool ? localx2.f() : localx2.g();
    label221:
    label226:
    if (i2 == 0) {
      if (d2 > d1)
      {
        if (i2 != 0) {
          break label274;
        }
        if (d3 > d1) {
          break label273;
        }
      }
    }
    if ((i2 != 0) || (d2 < d1)) {
      if (i2 != 0) {}
    }
    label273:
    label274:
    return d3 < d1;
  }
  
  void b(a.c.d paramd, z paramz)
  {
    int i1 = Cc;
    Object localObject = null;
    x localx = null;
    a.d.w localw1 = null;
    a.d.w localw2 = null;
    z localz;
    if (i1 == 0) {
      if (d(paramd.e()))
      {
        localx = (x)paramz.a();
        localz = this.p.o(paramd);
        localw1 = (a.d.w)localz.get(0);
        localw2 = (a.d.w)localz.get(1);
        break label149;
      }
    }
    if ((i1 != 0) || (d(paramd.f())))
    {
      localx = (x)paramz.d();
      localz = this.p.o(paramd);
      localw1 = (a.d.w)localz.get(localz.size() - 1);
      localw2 = (a.d.w)localz.get(localz.size() - 2);
    }
    else
    {
      return;
    }
    label149:
    if ((i1 != 0) || (localx.g))
    {
      double d = localx.l() ? localw1.b : localw1.a;
      localx.i = Math.max(localx.i, (float)d);
      localx.h = Math.min(localx.h, (float)d);
      d = localx.l() ? localw2.b : localw2.a;
      localx.i = Math.max(localx.i, (float)d);
      localx.h = Math.min(localx.h, (float)d);
    }
  }
  
  private double B()
  {
    if (Cc == 0) {
      if (this.r) {
        return this.u / 2.0D;
      }
    }
    return this.w;
  }
  
  private a.d.w a(a.c.e parame1, a.c.e parame2, x paramx, a.d.w paramw)
  {
    int i1 = Cc;
    a.d.w localw1 = a(parame1, paramx, paramw);
    if ((i1 != 0) || (((this.Jb) || ((i1 != 0) || ((this.Kb) || ((i1 != 0) || (this.Hb))))) && ((i1 != 0) || (this.Ib))))
    {
      a.d.w localw2 = a(parame2, paramx, paramw);
      if (i1 == 0)
      {
        if (paramx.l())
        {
          if (i1 == 0) {
            if (Math.abs(localw1.a - this.p.m(parame1)) < Math.abs(localw2.a - this.p.m(parame2))) {
              return localw1;
            }
          }
          return new a.d.w(localw2.a, localw1.b);
        }
        if (i1 != 0) {}
      }
      else if (Math.abs(localw1.b - this.p.n(parame1)) < Math.abs(localw2.b - this.p.n(parame2)))
      {
        return localw1;
      }
      return new a.d.w(localw1.a, localw2.b);
    }
    return localw1;
  }
  
  private a.d.w d(a.c.d paramd)
  {
    double[] arrayOfDouble1 = new double[4];
    double[] arrayOfDouble2 = new double[4];
    a.c.e locale1 = paramd.e();
    a.c.e locale2 = paramd.f();
    double d1 = this.p.p(locale1);
    double d2 = d1 + this.p.s(locale1);
    double d3 = this.p.q(locale1);
    double d4 = d3 + this.p.t(locale1);
    double d5 = this.p.p(locale2);
    double d6 = d5 + this.p.s(locale2);
    double d7 = this.p.q(locale2);
    double d8 = d7 + this.p.t(locale2);
    arrayOfDouble1[0] = d1;
    arrayOfDouble1[1] = d2;
    arrayOfDouble1[2] = d5;
    arrayOfDouble1[3] = d6;
    arrayOfDouble2[0] = d3;
    arrayOfDouble2[1] = d4;
    arrayOfDouble2[2] = d7;
    arrayOfDouble2[3] = d8;
    Arrays.sort(arrayOfDouble1);
    Arrays.sort(arrayOfDouble2);
    return new a.d.w((arrayOfDouble1[1] + arrayOfDouble1[2]) / 2.0D, (arrayOfDouble2[1] + arrayOfDouble2[2]) / 2.0D);
  }
  
  private double a(x paramx, boolean paramBoolean1, boolean paramBoolean2)
  {
    int i3 = Cc;
    int i2 = Bc;
    if (i3 == 0) {
      if (paramBoolean1)
      {
        if (i3 == 0) {
          if (paramBoolean2)
          {
            i1 = (int)Math.floor((paramx.a.a - this.s.a) / this.u);
            d = i1 * this.u + this.s.a;
            if (i3 != 0) {
              break label366;
            }
            if (d >= paramx.a.a) {
              break label359;
            }
            d += this.u;
            if (i3 != 0) {
              break label366;
            }
            if (i2 == 0) {
              break label359;
            }
          }
        }
        i1 = (int)Math.floor((paramx.b.a - this.s.a) / this.u);
        d = i1 * this.u + this.s.a;
        if (i3 != 0) {
          break label366;
        }
        if (d < paramx.b.a) {
          break label359;
        }
        d -= this.u;
        if (i3 != 0) {
          break label366;
        }
        if (i2 == 0) {
          break label359;
        }
      }
    }
    if (i3 == 0) {
      if (paramBoolean2)
      {
        i1 = (int)Math.floor((paramx.a.b - this.s.b) / this.u);
        d = i1 * this.u + this.s.b;
        if (i3 != 0) {
          break label366;
        }
        if (d >= paramx.a.b) {
          break label359;
        }
        d += this.u;
        if (i3 != 0) {
          break label366;
        }
        if (i2 == 0) {
          break label359;
        }
      }
    }
    int i1 = (int)Math.floor((paramx.b.b - this.s.b) / this.u);
    double d = i1 * this.u + this.s.b;
    if (i3 == 0) {
      if (d >= paramx.b.b) {
        d -= this.u;
      }
    }
    label359:
    if (((y)paramx).u()) {
      label366:
      d = a(d, paramx, paramBoolean2);
    }
    return d;
  }
  
  private double e(x paramx)
  {
    if (Cc == 0) {}
    double d = paramx.l() ? paramx.f() : paramx.g();
    return a(paramx, d);
  }
  
  private double a(x paramx, double paramDouble)
  {
    int i2 = Cc;
    int i1 = Bc;
    z localz = new z();
    if (i2 == 0) {}
    double d1 = paramx.l() ? paramx.a.a : paramx.a.b;
    d1 += this.w;
    double d2 = d1;
    if (i2 == 0) {}
    double d3 = paramx.l() ? paramx.b.a : paramx.b.b;
    double d4 = d1;
    do
    {
      do
      {
        if (d4 > d3) {
          break;
        }
        if (i2 != 0) {
          break label165;
        }
        localz.add(new Double(d4));
        d4 += 2.0D * this.w;
        if (i1 != 0) {
          break label163;
        }
      } while (i1 == 0);
    } while (i2 != 0);
    d4 = Math.abs(paramDouble - d2);
    label163:
    label165:
    a.c.y localy = localz.h();
    do
    {
      if (!localy.e()) {
        break;
      }
      double d5 = ((Double)localy.j()).doubleValue();
      if ((i2 == 0) && (i1 != 0)) {
        break label250;
      }
      if (i2 == 0)
      {
        if (Math.abs(paramDouble - d5) < d4)
        {
          d4 = Math.abs(paramDouble - d5);
          d2 = d5;
        }
        localy.f();
      }
    } while (i1 == 0);
    label250:
    return d2;
  }
  
  private double f(x paramx)
  {
    if (Cc == 0) {}
    double d = paramx.l() ? paramx.f() : paramx.g();
    return b(paramx, d);
  }
  
  private double b(x paramx, double paramDouble)
  {
    int i3 = Cc;
    int i2 = Bc;
    y localy = (y)paramx;
    z localz1 = a(paramx);
    if (localz1 != null)
    {
      double d1 = paramDouble;
      if ((i3 != 0) || (localy.u()))
      {
        z localz2 = localy.t();
        a.c.y localy1 = localz2.h();
        int i1 = 0;
        z localz3 = new z();
        do
        {
          if (!localy1.e()) {
            break;
          }
          if (i3 != 0) {
            break label155;
          }
          if (i2 != 0) {
            break label154;
          }
          if (i1 != 0) {
            break;
          }
          localObject = (y.a_)localy1.j();
          if (i3 == 0)
          {
            if (((y.a_)localObject).a == this.B) {
              localz3.add(localObject);
            }
            localy1.f();
          }
        } while (i2 == 0);
        if (i3 == 0) {
          label154:
          if (localz3.size() == 1)
          {
            label155:
            localObject = (y.a_)localz3.a();
            if (i3 == 0)
            {
              if (((y.a_)localObject).a != this.B) {
                break label295;
              }
              i1 = 1;
            }
            d1 = ((y.a_)localObject).b;
            if (i2 == 0) {
              break label295;
            }
          }
        }
        Object localObject = localz3.h();
        do
        {
          if (!((a.c.y)localObject).e()) {
            break;
          }
          if (i2 != 0) {
            break label302;
          }
          if (i1 != 0) {
            break;
          }
          y.a_ locala_ = (y.a_)((a.c.y)localObject).j();
          if (i3 == 0)
          {
            if (locala_.a == this.B)
            {
              if (i3 != 0) {
                continue;
              }
              if (locala_.e == this.C)
              {
                i1 = 1;
                d1 = locala_.b;
              }
            }
            ((a.c.y)localObject).f();
          }
        } while (i2 == 0);
        label295:
        if ((i3 == 0) && (i1 != 0)) {
          label302:
          return d1;
        }
        localy1.h();
        label425:
        do
        {
          if (!localy1.e()) {
            break;
          }
          if (i2 != 0) {
            break label452;
          }
          if (localz1.isEmpty()) {
            break;
          }
          double d4 = ((y.a_)localy1.j()).b;
          a.c.y localy3 = localz1.h();
          do
          {
            do
            {
              if (!localy3.e()) {
                break label425;
              }
              double d5 = ((Double)localy3.j()).doubleValue();
              if (i2 != 0) {
                break;
              }
              if (Math.abs(d4 - d5) <= 0.5D) {
                localz1.b(localy3);
              }
              localy3.f();
            } while (i2 == 0);
            localy1.f();
          } while (i3 != 0);
        } while (i2 == 0);
      }
      if ((i3 == 0) && (localz1.isEmpty())) {
        label452:
        throw new IllegalStateException("All grid lines removed.");
      }
      double d2 = (1.0D / 0.0D);
      d1 = paramDouble;
      a.c.y localy2 = localz1.h();
      do
      {
        if (!localy2.e()) {
          break;
        }
        double d3 = ((Double)localy2.j()).doubleValue();
        if ((i3 == 0) && (i2 != 0)) {
          break label561;
        }
        if (i3 == 0)
        {
          if (Math.abs(d3 - paramDouble) < d2)
          {
            d2 = Math.abs(d3 - paramDouble);
            d1 = d3;
          }
          localy2.f();
        }
      } while (i2 == 0);
      label561:
      return d1;
    }
    throw new IllegalStateException("No grid lines available.");
  }
  
  private double a(double paramDouble, x paramx, boolean paramBoolean)
  {
    int i3 = Cc;
    int i2 = Bc;
    double d1 = paramx.h();
    double d2 = paramx.i();
    y localy = (y)paramx;
    z localz = localy.t();
    int i1 = 0;
    a.c.y localy1 = localz.h();
    do
    {
      if (!localy1.e()) {
        break;
      }
      if (i2 != 0) {
        break label148;
      }
      if (i1 != 0) {
        break;
      }
      y.a_ locala_1 = (y.a_)localy1.j();
      if (i3 == 0)
      {
        if (locala_1.a == this.B)
        {
          if (i3 != 0) {
            continue;
          }
          if (locala_1.b == paramDouble)
          {
            if (i3 != 0) {
              continue;
            }
            if (locala_1.e == this.C) {
              i1 = 1;
            }
          }
        }
        localy1.f();
      }
    } while (i2 == 0);
    if ((i3 == 0) && (i1 != 0)) {
      label148:
      return paramDouble;
    }
    double d3 = paramDouble;
    localy1.h();
    label258:
    label259:
    do
    {
      if ((!localy1.e()) || (i1 != 0)) {
        break;
      }
      y.a_ locala_2 = (y.a_)localy1.j();
      if (i3 == 0)
      {
        if (locala_2.b == paramDouble)
        {
          if (i3 == 0) {}
          paramDouble += (paramBoolean ? this.u : -this.u);
          if (i3 == 0) {
            if (paramDouble >= d1)
            {
              if (i3 != 0) {
                break label259;
              }
              if (paramDouble < d2) {
                break label258;
              }
            }
          }
          paramDouble = d3;
          i1 = 1;
        }
        localy1.f();
      }
    } while (i2 == 0);
    return paramDouble;
  }
  
  private a.d.w a(a.c.e parame, x paramx, a.d.w paramw)
  {
    int i2 = Cc;
    int i1 = Bc;
    double d1 = 0.0D;
    double d2 = 0.0D;
    label244:
    label255:
    double d3;
    double d4;
    double d5;
    if (i2 == 0) {
      if (paramx.l())
      {
        if (i2 == 0) {
          if (this.r)
          {
            if (i2 == 0) {
              if (this.Kb)
              {
                if (i2 == 0) {
                  if (this.Ib)
                  {
                    d1 = b(paramx, this.p.m(parame));
                    if (i2 != 0) {
                      break label807;
                    }
                    if (i1 == 0) {
                      break label803;
                    }
                  }
                }
                if (i2 == 0)
                {
                  if (Math.abs(paramx.a.a - paramw.a) <= Math.abs(paramx.b.a - paramw.a))
                  {
                    d1 = a(paramx, true, true);
                    if (i2 != 0) {
                      break label807;
                    }
                    if (i1 == 0) {
                      break label803;
                    }
                  }
                  d1 = a(paramx, true, false);
                }
                if (i2 != 0) {
                  break label807;
                }
                if (i1 == 0) {
                  break label803;
                }
              }
            }
            if (i2 == 0) {
              if (!this.Jb)
              {
                if (i2 != 0) {
                  break label255;
                }
                if (!this.Hb) {
                  break label244;
                }
              }
            }
            if (i2 == 0)
            {
              if (this.Ib)
              {
                d1 = b(paramx, this.p.m(parame));
                if (i2 != 0) {
                  break label807;
                }
                if (i1 == 0) {
                  break label803;
                }
              }
              d1 = f(paramx);
            }
            if (i2 != 0) {
              break label807;
            }
            if (i1 == 0) {
              break label803;
            }
            d1 = a(paramx, true, true);
            if (i2 != 0) {
              break label807;
            }
            if (i1 == 0) {
              break label803;
            }
          }
        }
        if (i2 == 0) {
          if (this.Kb)
          {
            if (i2 == 0) {
              if (this.Ib)
              {
                d3 = this.p.m(parame);
                d4 = d3 - this.w;
                d5 = d3 + this.w;
                if (i2 == 0)
                {
                  if (d4 >= paramx.a.a)
                  {
                    if (i2 != 0) {
                      break label380;
                    }
                    if (d5 <= paramx.b.a)
                    {
                      d1 = d3;
                      if (i2 != 0) {
                        break label431;
                      }
                      if (i1 == 0) {
                        break label421;
                      }
                    }
                  }
                  if (i2 != 0) {
                    break label418;
                  }
                }
                if (d4 >= paramx.a.a)
                {
                  label380:
                  d1 = paramx.b.a - this.w;
                  if (i2 != 0) {
                    break label431;
                  }
                  if (i1 == 0) {}
                }
                else
                {
                  label418:
                  d1 = paramx.a.a + this.w;
                }
                label421:
                label431:
                if (i2 == 0)
                {
                  if (d1 >= paramx.a.a)
                  {
                    if (i2 != 0) {
                      break label807;
                    }
                    if (d1 <= paramx.b.a) {
                      break label803;
                    }
                  }
                  d1 = paramx.f();
                }
                if (i2 != 0) {
                  break label807;
                }
                if (i1 == 0) {
                  break label803;
                }
              }
            }
            if (i2 == 0)
            {
              if (Math.abs(paramx.a.a - paramw.a) <= Math.abs(paramx.b.a - paramw.a))
              {
                d1 = paramx.a.a + this.w;
                if (i2 != 0) {
                  break label807;
                }
                if (i1 == 0) {
                  break label803;
                }
              }
              d1 = paramx.b.a - this.w;
            }
            if (i2 != 0) {
              break label807;
            }
            if (i1 == 0) {
              break label803;
            }
          }
        }
        if ((i2 != 0) || ((this.Jb) || ((i2 != 0) || (this.Hb))))
        {
          d3 = (i2 != 0) || (this.Ib) ? this.p.m(parame) : paramx.f();
          d4 = d3 - this.w;
          d5 = d3 + this.w;
          if (i2 == 0)
          {
            if (d4 >= paramx.a.a)
            {
              if (i2 != 0) {
                break label696;
              }
              if (d5 <= paramx.b.a)
              {
                d1 = d3;
                if (i2 != 0) {
                  break label747;
                }
                if (i1 == 0) {
                  break label737;
                }
              }
            }
            if (i2 != 0) {
              break label734;
            }
          }
          if (d4 >= paramx.a.a)
          {
            label696:
            d1 = paramx.b.a - this.w;
            if (i2 != 0) {
              break label747;
            }
            if (i1 == 0) {}
          }
          else
          {
            label734:
            d1 = paramx.a.a + this.w;
          }
          label737:
          label747:
          if (i2 == 0)
          {
            if (d1 >= paramx.a.a)
            {
              if (i2 != 0) {
                break label807;
              }
              if (d1 <= paramx.b.a) {}
            }
            else
            {
              d1 = paramx.f();
            }
          }
          else
          {
            if (i2 != 0) {
              break label807;
            }
            if (i1 == 0) {}
          }
        }
        else
        {
          d1 = paramx.a.a + this.w;
        }
        label803:
        label807:
        if (i2 == 0) {
          if (this.wc)
          {
            d2 = this.p.n(parame);
            if ((i2 == 0) && (i1 == 0)) {
              break label1770;
            }
          }
        }
        if (i2 == 0) {
          if (paramx.a.b < this.p.q(parame))
          {
            d2 = this.p.q(parame);
            if (i2 == 0) {
              if (i1 == 0) {
                break label1770;
              }
            }
          }
          else
          {
            d2 = this.p.q(parame) + this.p.t(parame);
          }
        }
        if ((i2 == 0) && (i1 == 0)) {
          break label1770;
        }
      }
    }
    if (i2 == 0) {
      if (this.r)
      {
        if (i2 == 0) {
          if (this.Kb)
          {
            if (i2 == 0) {
              if (this.Ib)
              {
                d2 = f(paramx);
                if (i2 != 0) {
                  break label1679;
                }
                if (i1 == 0) {
                  break label1675;
                }
              }
            }
            if (i2 == 0)
            {
              if (Math.abs(paramx.a.b - paramw.b) <= Math.abs(paramx.b.b - paramw.b))
              {
                d2 = a(paramx, false, true);
                if (i2 != 0) {
                  break label1679;
                }
                if (i1 == 0) {
                  break label1675;
                }
              }
              d2 = a(paramx, false, false);
            }
            if (i2 != 0) {
              break label1679;
            }
            if (i1 == 0) {
              break label1675;
            }
          }
        }
        if (i2 == 0) {
          if (!this.Jb)
          {
            if (i2 != 0) {
              break label1127;
            }
            if (!this.Hb) {
              break label1116;
            }
          }
        }
        if (i2 == 0)
        {
          if (this.Ib)
          {
            d2 = f(paramx);
            if (i2 != 0) {
              break label1679;
            }
            if (i1 == 0) {
              break label1675;
            }
          }
          d2 = b(paramx, this.p.n(parame));
        }
        if (i2 != 0) {
          break label1679;
        }
        if (i1 == 0) {
          break label1675;
        }
        label1116:
        d2 = a(paramx, false, true);
        label1127:
        if (i2 != 0) {
          break label1679;
        }
        if (i1 == 0) {
          break label1675;
        }
      }
    }
    if (i2 == 0) {
      if (this.Kb)
      {
        if (i2 == 0) {
          if (this.Ib)
          {
            d3 = this.p.n(parame);
            d4 = d3 - this.w;
            d5 = d3 + this.w;
            if (i2 == 0)
            {
              if (d4 >= paramx.a.b)
              {
                if (i2 != 0) {
                  break label1252;
                }
                if (d5 <= paramx.b.b)
                {
                  d2 = d3;
                  if (i2 != 0) {
                    break label1303;
                  }
                  if (i1 == 0) {
                    break label1293;
                  }
                }
              }
              if (i2 != 0) {
                break label1290;
              }
            }
            if (d4 >= paramx.a.b)
            {
              label1252:
              d2 = paramx.b.b - this.w;
              if (i2 != 0) {
                break label1303;
              }
              if (i1 == 0) {}
            }
            else
            {
              label1290:
              d2 = paramx.a.b + this.w;
            }
            label1293:
            label1303:
            if (i2 == 0)
            {
              if (d2 >= paramx.a.b)
              {
                if (i2 != 0) {
                  break label1679;
                }
                if (d2 <= paramx.b.b) {
                  break label1675;
                }
              }
              d2 = paramx.g();
            }
            if (i2 != 0) {
              break label1679;
            }
            if (i1 == 0) {
              break label1675;
            }
          }
        }
        if (i2 == 0)
        {
          if (Math.abs(paramx.a.b - paramw.b) <= Math.abs(paramx.b.b - paramw.b))
          {
            d2 = paramx.a.b + this.w;
            if (i2 != 0) {
              break label1679;
            }
            if (i1 == 0) {
              break label1675;
            }
          }
          d2 = paramx.b.b - this.w;
        }
        if (i2 != 0) {
          break label1679;
        }
        if (i1 == 0) {
          break label1675;
        }
      }
    }
    if ((i2 != 0) || ((this.Jb) || ((i2 != 0) || (this.Hb))))
    {
      d3 = (i2 != 0) || (this.Ib) ? this.p.n(parame) : paramx.g();
      d4 = d3 - this.w;
      d5 = d3 + this.w;
      if (i2 == 0)
      {
        if (d4 >= paramx.a.b)
        {
          if (i2 != 0) {
            break label1568;
          }
          if (d5 <= paramx.b.b)
          {
            d2 = d3;
            if (i2 != 0) {
              break label1619;
            }
            if (i1 == 0) {
              break label1609;
            }
          }
        }
        if (i2 != 0) {
          break label1606;
        }
      }
      if (d4 >= paramx.a.b)
      {
        label1568:
        d2 = paramx.b.b - this.w;
        if (i2 != 0) {
          break label1619;
        }
        if (i1 == 0) {}
      }
      else
      {
        label1606:
        d2 = paramx.a.b + this.w;
      }
      label1609:
      label1619:
      if (i2 == 0)
      {
        if (d2 >= paramx.a.b)
        {
          if (i2 != 0) {
            break label1679;
          }
          if (d2 <= paramx.b.b) {}
        }
        else
        {
          d2 = paramx.g();
        }
      }
      else
      {
        if (i2 != 0) {
          break label1679;
        }
        if (i1 == 0) {}
      }
    }
    else
    {
      d2 = paramx.a.b + this.w;
    }
    label1675:
    label1679:
    if (i2 == 0) {
      if (this.wc)
      {
        d1 = this.p.m(parame);
        if (i2 == 0) {
          if (i1 == 0) {
            break label1770;
          }
        }
      }
      else
      {
        if (i2 != 0) {
          break label1767;
        }
      }
    }
    if (paramx.a.a < this.p.p(parame))
    {
      if (i2 != 0) {
        break label1768;
      }
      d1 = this.p.p(parame);
      if (i1 == 0) {
        break label1770;
      }
    }
    label1767:
    label1768:
    d1 = this.p.p(parame) + this.p.s(parame);
    label1770:
    return new a.d.w(d1, d2);
  }
  
  private void a(a.c.e parame, a.c.ab paramab)
  {
    int i2 = Cc;
    int i1 = Bc;
    m localm = paramab.l();
    a.c.d locald;
    x localx;
    do
    {
      do
      {
        if (!localm.e()) {
          break;
        }
        locald = localm.a();
        localx = (x)this.H.get(locald.a(parame));
        this.x.a(locald);
        localm.f();
        if ((i2 == 0) && (i1 != 0)) {
          return;
        }
      } while (i1 == 0);
      if (i2 != 0) {
        break;
      }
    } while (i2 != 0);
    if (parame.c() > 0)
    {
      localm = parame.l();
      do
      {
        if (!localm.e()) {
          break;
        }
        locald = localm.a();
        localx = (x)this.H.get(locald.a(parame));
        this.x.a(locald);
        localm.f();
      } while (i1 == 0);
    }
  }
  
  private void a(a.c.e parame1, a.c.e parame2, a.c.ab paramab)
  {
    nb localnb = (nb)this.E.get(parame1);
    a(localnb.a, parame2, paramab, null);
    a(localnb.c, parame2, paramab, null);
    a(localnb.e, parame2, paramab, null);
    a(localnb.g, parame2, paramab, null);
  }
  
  private void a(z paramz, a.c.e parame, a.c.ab paramab, ad paramad)
  {
    int i5 = Cc;
    int i4 = Bc;
    Object localObject;
    if (i5 == 0)
    {
      if (paramz.size() == 0) {
        return;
      }
      if (i5 != 0) {}
    }
    else if (this.r)
    {
      a.c.y localy1 = paramz.h();
      do
      {
        if (!localy1.e()) {
          break;
        }
        x localx1 = (x)localy1.j();
        if (i5 == 0)
        {
          if (localx1 != null)
          {
            int i1 = a(localx1.h(), localx1.i());
            if (i5 == 0) {}
            int i2 = i1 > 0 ? 1 : 0;
            if (i5 != 0) {
              continue;
            }
            if (i2 != 0)
            {
              a.c.e locale = (a.c.e)this.G.get(localx1);
              localObject = this.x.a(parame, locale);
              paramab.add(localObject);
              if (i5 != 0) {
                continue;
              }
              if (paramad != null) {
                this.Pb.put(localObject, paramad);
              }
            }
          }
          localy1.f();
        }
      } while (i4 == 0);
    }
    double d = this.w + 1.0D;
    a.c.y localy2 = paramz.h();
    label267:
    do
    {
      if (!localy2.e()) {
        break;
      }
      x localx2 = (x)localy2.j();
      if (i5 == 0)
      {
        if (localx2 != null)
        {
          if ((!localx2.g) || (i5 == 0)) {
            if (localx2.d() < d) {
              if (i5 != 0) {
                break label267;
              }
            }
          }
          int i3 = localx2.g ? 1 : 0;
          if (i5 != 0) {
            continue;
          }
          if (i3 != 0)
          {
            localObject = (a.c.e)this.G.get(localx2);
            a.c.d locald = this.x.a(parame, (a.c.e)localObject);
            paramab.add(locald);
            if (i5 != 0) {
              continue;
            }
            if (paramad != null) {
              this.Pb.put(locald, paramad);
            }
          }
        }
        localy2.f();
      }
    } while (i4 == 0);
  }
  
  private z a(a.c.ab paramab, a.c.e parame)
  {
    int i2 = Cc;
    int i1 = Bc;
    z localz = new z();
    Object localObject = parame;
    m localm = paramab.l();
    do
    {
      if (!localm.e()) {
        break;
      }
      a.c.d locald = localm.a();
      a.c.e locale = locald.a((a.c.e)localObject);
      x localx = (x)this.H.get(locale);
      if (i2 == 0)
      {
        if (localx == null) {
          break;
        }
        localz.add(localx);
        localObject = locale;
        localm.f();
      }
    } while (i1 == 0);
    return localz;
  }
  
  private a.c.ab[] C()
  {
    int i2 = Cc;
    int i1 = Bc;
    a.c.n localn = a.i.db.b(new boolean[this.p.l()]);
    a(localn);
    a.c.ab[] arrayOfab = new a.c.ab[2];
    arrayOfab[0] = new a.c.ab();
    arrayOfab[1] = new a.c.ab();
    m localm = this.p.w();
    if (localm.e()) {
      if (i2 == 0) {
        if (localn.getBool(localm.a()))
        {
          arrayOfab[0].add(localm.a());
          if (i2 != 0) {
            break label135;
          }
          if (i1 == 0) {
            break label127;
          }
        }
      }
    }
    label127:
    while (i2 != 0)
    {
      arrayOfab[1].add(localm.a());
      localm.f();
      if (i1 == 0) {
        break;
      }
    }
    label135:
    return arrayOfab;
  }
  
  private void D()
  {
    int i3 = Cc;
    int i2 = Bc;
    eb localeb = o();
    this.pb = new a.i.mb();
    localeb.r();
    this.pb.b();
    z localz1 = localeb.d();
    z localz2 = localeb.e();
    k localk = localeb.h();
    this.D = localeb.f();
    this.E = localeb.g();
    if (i3 == 0)
    {
      if (this.cb) {
        System.out.print(localeb.i());
      }
      this.lb = new a.i.mb();
    }
    if (i3 == 0)
    {
      if (this.H != null)
      {
        if (i3 != 0) {
          break label178;
        }
        if (this.x != null) {
          this.x.a(this.H);
        }
      }
      this.x = new a.c.q();
      this.H = this.x.B();
      this.G = new sb();
      this.lb.b();
    }
    label178:
    this.mb = new a.i.mb();
    int i1 = 0;
    a.c.y localy1 = localz2.h();
    if (localy1.e()) {
      i1++;
    }
    x localx1;
    a.c.e locale1;
    label316:
    label319:
    label328:
    while (i3 != 0)
    {
      localx1 = (x)localy1.j();
      if (i3 != 0) {
        break label339;
      }
      if (i2 != 0) {
        break label337;
      }
      if (this.q != 0)
      {
        if (i3 != 0) {
          break label316;
        }
        if (!h(localx1)) {}
      }
      else
      {
        if (localx1.h() == localx1.i()) {
          break label319;
        }
        locale1 = this.x.i();
        this.G.a(localx1, locale1);
        this.H.a(locale1, localx1);
        if (i3 != 0) {
          break label328;
        }
        if (i2 == 0) {
          break label319;
        }
      }
      j(localx1);
      localy1.f();
      if (i2 == 0) {
        break;
      }
    }
    label337:
    i1 = 0;
    label339:
    localy1 = localz1.h();
    if (localy1.e()) {
      i1++;
    }
    label706:
    label709:
    do
    {
      localx1 = (x)localy1.j();
      if (i2 != 0) {
        break label876;
      }
      if (this.q != 0) {}
      do
      {
        if (i3 != 0) {
          break label706;
        }
        if (h(localx1))
        {
          if (localx1.h() == localx1.i()) {
            break label709;
          }
          locale1 = this.x.i();
          this.G.a(localx1, locale1);
          this.H.a(locale1, localx1);
          Rectangle2D.Double localDouble1 = new Rectangle2D.Double(localx1.a.a, localx1.a.b, localx1.b.a - localx1.a.a, localx1.b.b - localx1.a.b);
          a.c.y localy2 = ((z)localk.get(localx1)).h();
          do
          {
            if (!localy2.e()) {
              break label709;
            }
            x localx2 = (x)localy2.j();
            if (i2 != 0) {
              break;
            }
            if (localx2.h() != localx2.i())
            {
              Rectangle2D.Double localDouble2 = new Rectangle2D.Double(localx2.a.a, localx2.a.b, localx2.b.a - localx2.a.a, localx2.b.b - localx2.a.b);
              a.c.e locale2 = (a.c.e)this.G.get(localx2);
              if (i3 != 0) {
                continue;
              }
              if (locale2 != null)
              {
                if (i3 != 0) {
                  continue;
                }
                if (localDouble1.intersects(localDouble2)) {
                  this.x.a(locale1, (a.c.e)this.G.get(localx2));
                }
              }
            }
            localy2.f();
          } while (i2 == 0);
        }
      } while (i3 != 0);
      j(localx1);
      localy1.f();
      if (i2 == 0) {
        break;
      }
      this.mb.b();
      this.gb = this.x.k();
      this.hb = this.x.m();
      this.qc = new db.g_(this.x.B(), 0);
      this.pc = this.x.B();
      this.oc = this.x.B();
      this.sc = new db.f_(this.x.B(), 0.0D);
      this.rc = new db.f_(this.x.B(), 0.0D);
      this.tc = new db.f_(this.x.C(), 0.0D);
      this.F = new db.f_(this.x.C(), 0.0D);
    } while (i3 != 0);
    if (w())
    {
      label876:
      this.nc = this.x.B();
      this.mc = new pb(this.x);
    }
  }
  
  a.c.n a(a.c.q paramq, a.c.n paramn, double paramDouble)
  {
    int i2 = Cc;
    int i1 = Bc;
    m localm = paramq.w();
    do
    {
      while (i1 == 0)
      {
        if (!localm.e()) {
          break;
        }
        if (i1 != 0) {
          break label63;
        }
        paramn.a(localm.a(), paramDouble);
        localm.f();
      }
    } while (i2 != 0);
    label63:
    return paramn;
  }
  
  a.c.x a(a.c.q paramq, a.c.x paramx, double paramDouble)
  {
    int i2 = Cc;
    int i1 = Bc;
    a.c.w localw = paramq.v();
    do
    {
      while (i1 == 0)
      {
        if (!localw.e()) {
          break;
        }
        if (i1 != 0) {
          break label63;
        }
        paramx.a(localw.d(), paramDouble);
        localw.f();
      }
    } while (i2 != 0);
    label63:
    return paramx;
  }
  
  a.c.x a(a.c.q paramq, a.c.x paramx, int paramInt)
  {
    int i2 = Cc;
    int i1 = Bc;
    a.c.w localw = paramq.v();
    do
    {
      while (i1 == 0)
      {
        if (!localw.e()) {
          break;
        }
        if (i1 != 0) {
          break label63;
        }
        paramx.a(localw.d(), paramInt);
        localw.f();
      }
    } while (i2 != 0);
    label63:
    return paramx;
  }
  
  private boolean h(x paramx)
  {
    boolean bool = true;
    if (Cc == 0) {
      if (paramx.m()) {
        bool = i(paramx);
      }
    }
    return bool;
  }
  
  private boolean i(x paramx)
  {
    int i2 = Cc;
    int i1 = Bc;
    boolean bool = false;
    nb localnb = (nb)this.D.get(paramx);
    if (paramx.l())
    {
      localy = localnb.a.h();
      do
      {
        do
        {
          if (!localy.e()) {
            break;
          }
          bool |= a((a.c.e)localy.j(), paramx);
          localy.f();
          if (i2 != 0) {
            break label113;
          }
          if (i1 != 0) {
            break label106;
          }
        } while (i1 == 0);
      } while (i2 != 0);
      localy = localnb.c.h();
      label106:
      label113:
      do
      {
        do
        {
          if (!localy.e()) {
            break;
          }
          bool |= a((a.c.e)localy.j(), paramx);
          localy.f();
          if (i2 != 0) {
            break label177;
          }
          if (i1 != 0) {
            break label170;
          }
        } while (i1 == 0);
      } while (i2 != 0);
      localy = localnb.b.h();
      label170:
      label177:
      do
      {
        do
        {
          if (!localy.e()) {
            break;
          }
          bool |= a((a.c.e)localy.j(), paramx);
          localy.f();
          if (i2 != 0) {
            break label241;
          }
          if (i1 != 0) {
            break label234;
          }
        } while (i1 == 0);
      } while (i2 != 0);
      localy = localnb.d.h();
      label234:
      label241:
      do
      {
        if (!localy.e()) {
          break;
        }
        if (i2 == 0)
        {
          if (i1 != 0) {
            break label541;
          }
          bool |= a((a.c.e)localy.j(), paramx);
          localy.f();
        }
      } while (i1 == 0);
    }
    a.c.y localy = localnb.e.h();
    do
    {
      do
      {
        if (!localy.e()) {
          break;
        }
        bool |= a((a.c.e)localy.j(), paramx);
        localy.f();
        if (i2 != 0) {
          break label364;
        }
        if (i1 != 0) {
          break label357;
        }
      } while (i1 == 0);
    } while (i2 != 0);
    localy = localnb.g.h();
    label357:
    label364:
    do
    {
      do
      {
        if (!localy.e()) {
          break;
        }
        bool |= a((a.c.e)localy.j(), paramx);
        localy.f();
        if (i2 != 0) {
          break label428;
        }
        if (i1 != 0) {
          break label421;
        }
      } while (i1 == 0);
    } while (i2 != 0);
    localy = localnb.f.h();
    label421:
    label428:
    do
    {
      do
      {
        if (!localy.e()) {
          break;
        }
        bool |= a((a.c.e)localy.j(), paramx);
        localy.f();
        if (i2 != 0) {
          break label492;
        }
        if (i1 != 0) {
          break label485;
        }
      } while (i1 == 0);
    } while (i2 != 0);
    localy = localnb.h.h();
    label485:
    label492:
    while (i2 != 0) {
      while (i1 == 0)
      {
        if (!localy.e()) {
          break;
        }
        if (i2 == 0)
        {
          if (i1 != 0) {
            break label541;
          }
          bool |= a((a.c.e)localy.j(), paramx);
          localy.f();
        }
      }
    }
    label541:
    return bool;
  }
  
  private boolean a(a.c.e parame, x paramx)
  {
    int i3 = Cc;
    int i2 = Bc;
    boolean bool = false;
    double d1 = paramx.h();
    double d2 = paramx.i();
    k localk1 = this.p.c(b());
    k localk2 = this.p.c(c());
    if (i3 == 0) {
      if (paramx.l())
      {
        if (i3 == 0) {}
        i1 = paramx.g() < this.p.n(parame) ? 1 : 2;
        if ((i3 == 0) && (i2 == 0)) {
          break label129;
        }
      }
    }
    if (i3 == 0) {}
    int i1 = paramx.f() < this.p.m(parame) ? 8 : 4;
    label129:
    m localm = parame.m();
    a.c.d locald;
    cd localcd;
    label356:
    double d5;
    do
    {
      do
      {
        if (!localm.e()) {
          break;
        }
        locald = localm.a();
        if (i2 != 0) {
          break label538;
        }
        if (((this.q != 2) || ((i3 != 0) || (localk2.getBool(locald)))) && ((i3 != 0) || ((this.q != 4) || ((i3 != 0) || ((localk1.getBool(parame)) || (localk1.getBool(locald.a(parame))))))))
        {
          localcd = cd.e(this.p, locald);
          if (i3 == 0) {
            if (localcd != null)
            {
              if (i3 != 0) {
                break label356;
              }
              if (localcd.a())
              {
                if (i3 != 0) {
                  break label356;
                }
                if (localcd.b() == i1)
                {
                  double d3 = paramx.l() ? this.p.s(locald).a : this.p.s(locald).b;
                  if ((i3 != 0) || (d1 <= d3)) {
                    if (i3 != 0) {}
                  }
                  bool |= d2 >= d3;
                }
              }
            }
          }
          if (localcd == null)
          {
            ad localad1 = b(o.a(this.p, locald, false));
            if (i3 != 0) {
              continue;
            }
            if (localad1 != null)
            {
              if (i3 != 0) {
                continue;
              }
              if (localad1.b())
              {
                if (i3 != 0) {
                  continue;
                }
                if (localad1.a() == (i1 & 0xF))
                {
                  d5 = paramx.l() ? this.p.s(locald).a : this.p.s(locald).b;
                  if ((i3 != 0) || (d1 <= d5)) {
                    if (i3 != 0) {}
                  }
                  bool |= d2 >= d5;
                }
              }
            }
          }
        }
        localm.f();
      } while (i2 == 0);
    } while (i3 != 0);
    localm = parame.n();
    label538:
    label730:
    do
    {
      if (!localm.e()) {
        break;
      }
      locald = localm.a();
      if (i2 != 0) {
        break label873;
      }
      if (this.q == 2) {}
      if (((i3 == 0) && ((localk2.getBool(locald)) && (i3 != 0))) || ((this.q != 4) || ((i3 != 0) || ((localk1.getBool(parame)) || (localk1.getBool(locald.a(parame)))))))
      {
        localcd = cd.d(this.p, locald);
        if (i3 == 0) {
          if (localcd != null)
          {
            if (i3 != 0) {
              break label730;
            }
            if (localcd.a())
            {
              if (i3 != 0) {
                break label730;
              }
              if (localcd.b() == i1)
              {
                double d4 = paramx.l() ? this.p.r(locald).a : this.p.r(locald).b;
                if ((i3 != 0) || (d1 <= d4)) {
                  if (i3 != 0) {}
                }
                bool |= d2 >= d4;
              }
            }
          }
        }
        if (localcd == null)
        {
          ad localad2 = b(o.a(this.p, locald, true));
          if (i3 != 0) {
            continue;
          }
          if (localad2 != null)
          {
            if (i3 != 0) {
              continue;
            }
            if (localad2.b())
            {
              if (i3 != 0) {
                continue;
              }
              if (localad2.a() == (i1 & 0xF))
              {
                d5 = paramx.l() ? this.p.r(locald).a : this.p.r(locald).b;
                if ((i3 != 0) || (d1 <= d5)) {
                  if (i3 != 0) {}
                }
                bool |= d2 >= d5;
              }
            }
          }
        }
      }
      localm.f();
    } while (i2 == 0);
    label873:
    return bool;
  }
  
  private ad b(Collection paramCollection)
  {
    int i2 = Cc;
    int i1 = Bc;
    if (((i2 == 0) && (paramCollection == null)) || (paramCollection.isEmpty())) {
      return null;
    }
    Object localObject = null;
    Iterator localIterator = paramCollection.iterator();
    while (localIterator.hasNext())
    {
      ad localad = (ad)localIterator.next();
      if (i2 == 0) {
        if (localObject == null) {
          localObject = localad;
        }
      }
      if (!localad.b())
      {
        if ((i2 != 0) || (i1 != 0)) {
          break label96;
        }
        localObject = localad;
      }
    }
    label96:
    return localObject;
  }
  
  private void j(x paramx)
  {
    int i2 = Cc;
    int i1 = Bc;
    nb localnb = (nb)this.D.get(paramx);
    if (i2 == 0) {
      if (paramx.l())
      {
        a(localnb.a, paramx, (byte)2);
        a(localnb.b, paramx, (byte)20);
        a(localnb.c, paramx, (byte)1);
        a(localnb.d, paramx, (byte)10);
        if (i2 == 0) {
          if (i1 == 0) {
            break label131;
          }
        }
      }
      else
      {
        a(localnb.e, paramx, (byte)4);
        a(localnb.f, paramx, (byte)40);
        a(localnb.g, paramx, (byte)8);
      }
    }
    a(localnb.h, paramx, (byte)80);
    label131:
    y localy = (y)paramx;
    a.c.y localy1 = localy.k.h();
    do
    {
      do
      {
        if (!localy1.e()) {
          break;
        }
        ((y)localy1.j()).b(false, localy);
        localy1.f();
        if (i2 != 0) {
          break label213;
        }
        if (i1 != 0) {
          break label206;
        }
      } while (i1 == 0);
    } while (i2 != 0);
    localy1 = localy.l.h();
    label206:
    label213:
    do
    {
      while (i1 == 0)
      {
        if (!localy1.e()) {
          break;
        }
        ((y)localy1.j()).b(true, localy);
        localy1.f();
      }
    } while (i2 != 0);
  }
  
  private String F()
  {
    int i2 = Cc;
    int i1 = Bc;
    String str = "";
    str = str + "\n===Orthogonal Edge Router===\n";
    str = str + "Chosen style is ";
    if (i2 == 0) {
      switch (this.q)
      {
      case 0: 
        str = str + "ROUTE_ALL_EDGES";
        if (i2 == 0) {
          if (i1 == 0) {
            break;
          }
        }
        break;
      case 2: 
        str = str + "ROUTE_SELECTED_EDGES";
        if (i2 == 0) {
          if (i1 == 0) {
            break;
          }
        }
        break;
      case 4: 
        str = str + "ROUTE_EDGES_AT_SELECTED_NODES";
      }
    }
    if (i2 == 0)
    {
      if (this.r)
      {
        str = str + "; Grid Width = " + this.t + "\n";
        if (i2 != 0) {
          return str;
        }
      }
    }
    else {
      if (i1 == 0) {
        break label262;
      }
    }
    str = str + "; Minimum Distance = " + this.v + "\n";
    label262:
    str = str + "Number of edges routed = " + this.eb + "\n";
    str = str + "Number of bad edges = " + this.fb + "\n";
    str = str + "Total routing time = " + this.kb + "\n";
    str = str + "Time for all edges = " + this.qb + "\n";
    str = str + "Number of Dijkstra runs = " + this.db + "\n";
    str = str + "Time for Dijkstra runs = " + this.rb + "\n";
    str = str + "RIG initially = " + this.gb;
    str = str + " nodes, " + this.hb + " edges\n";
    str = str + "RIG finally = " + this.ib;
    str = str + " nodes, " + this.jb + " edges\n";
    str = str + "Time for preparing the RIG = " + this.lb + "\n";
    str = str + "Time for building the RIG = " + this.mb + "\n";
    str = str + "Time for decorating the RIG = " + this.nb + "\n";
    str = str + "Time for instantiating the sweepline ";
    str = str + "= " + this.ob + "\n";
    str = str + "Time for running the sweepline = " + this.pb + "\n";
    str = str + "===Orthogonal Edge Router===\n";
    return str;
  }
  
  public void b(byte paramByte)
  {
    if (Cc == 0) {}
    switch (paramByte)
    {
    case 0: 
    case 2: 
    case 4: 
      this.q = paramByte;
      if (Bc == 0) {
        break;
      }
    case 1: 
    case 3: 
    default: 
      throw new IllegalArgumentException("Argument '" + paramByte + "' not allowed.");
    }
  }
  
  public byte G()
  {
    return this.q;
  }
  
  public void d(boolean paramBoolean)
  {
    this.r = paramBoolean;
  }
  
  public boolean H()
  {
    return this.r;
  }
  
  public void a(int paramInt1, int paramInt2)
  {
    this.s = new a.d.w(paramInt1, paramInt2);
  }
  
  public a.d.w I()
  {
    return this.s;
  }
  
  public void b(int paramInt)
  {
    if (Math.abs(paramInt) >= 2)
    {
      this.t = Math.abs(paramInt);
      this.u = this.t;
    }
  }
  
  public int J()
  {
    return this.t;
  }
  
  public void c(int paramInt)
  {
    if (Math.abs(paramInt) >= 4)
    {
      this.v = Math.abs(0.5D * paramInt);
      this.w = this.v;
    }
  }
  
  public int K()
  {
    return (int)(this.v * 2.0D);
  }
  
  public void e(boolean paramBoolean)
  {
    if (Cc == 0) {}
    this.yb = (!paramBoolean);
  }
  
  public boolean L()
  {
    if (Cc == 0) {}
    return !this.yb;
  }
  
  public void d(int paramInt)
  {
    if (Math.abs(paramInt) >= 2) {
      this.zb = paramInt;
    }
  }
  
  public int M()
  {
    return this.zb;
  }
  
  public void f(boolean paramBoolean)
  {
    this.vc = paramBoolean;
  }
  
  public boolean O()
  {
    return this.vc;
  }
  
  public void c(double paramDouble)
  {
    int i1 = Cc;
    if (i1 == 0) {
      if (paramDouble < 0.0D) {
        paramDouble = 0.0D;
      }
    }
    if ((i1 != 0) || (paramDouble > 1.0D)) {
      paramDouble = 1.0D;
    }
    this.Fb = paramDouble;
  }
  
  public double P()
  {
    return this.Fb;
  }
  
  public void c(byte paramByte)
  {
    int i1 = Cc;
    this.Gb = paramByte;
    if (i1 == 0) {}
    this.Hb = (3 == paramByte);
    if (i1 == 0) {}
    this.Jb = (2 == paramByte);
    if (i1 == 0) {}
    this.Kb = (1 == paramByte);
  }
  
  public byte Q()
  {
    return this.Gb;
  }
  
  public void g(boolean paramBoolean)
  {
    this.xb = paramBoolean;
  }
  
  public boolean R()
  {
    return this.xb;
  }
  
  public void h(boolean paramBoolean)
  {
    this.Ab = paramBoolean;
  }
  
  public boolean S()
  {
    return this.Ab;
  }
  
  public void e(int paramInt)
  {
    this.Bb = Math.abs(paramInt);
  }
  
  public int T()
  {
    return this.Bb;
  }
  
  public void i(boolean paramBoolean)
  {
    this.wc = paramBoolean;
  }
  
  public boolean U()
  {
    return this.wc;
  }
  
  boolean d(a.c.e parame)
  {
    k localk = this.p.c(e.g);
    return (Cc != 0) || ((localk != null) && (localk.get(parame) != null));
  }
  
  boolean e(a.c.e parame)
  {
    int i1 = Cc;
    k localk = this.p.c(e.g);
    if ((i1 != 0) || (localk != null)) {
      if (i1 != 0) {}
    }
    return e.h.equals(localk.get(parame));
  }
  
  boolean f(a.c.e parame)
  {
    int i1 = Cc;
    k localk = this.p.c(e.g);
    if ((i1 != 0) || (localk != null)) {
      if (i1 != 0) {}
    }
    return e.i.equals(localk.get(parame));
  }
  
  static class e_
  {
    a.d.w a;
    a.d.w b;
    a.c.d c;
    
    e_(a.d.w paramw1, a.d.w paramw2, a.c.d paramd)
    {
      this.a = paramw1;
      this.b = paramw2;
      this.c = paramd;
    }
  }
  
  static class f_
  {
    private static final int a = 0;
    private static final int c = 1;
    private static final int d = 2;
    private static final int f = 3;
    private HashMap g = null;
    private z[] h = new z[4];
    private int[] j = new int[4];
    private z k = new z();
    
    f_(bd parambd)
    {
      this();
      Iterator localIterator = parambd.b();
      label164:
      do
      {
        do
        {
          bd.e_ locale_;
          ad localad;
          do
          {
            do
            {
              if (!localIterator.hasNext()) {
                return;
              }
              locale_ = (bd.e_)localIterator.next();
              localad = locale_.a();
              this.k.add(localad);
              if (n != 0) {
                break label164;
              }
              if (!localad.b()) {
                break;
              }
              Object localObject = a(localad.c(), localad.d());
              int i = locale_.b();
              if (n == 0)
              {
                if (this.g.containsKey(localObject)) {
                  i += ((Integer)this.g.get(localObject)).intValue();
                }
                this.g.put(localObject, new Integer(i));
              }
            } while ((n == 0) && (m == 0));
            if (n == 0) {
              if (localad.a(1)) {
                this.j[0] += locale_.b();
              }
            }
            if (n == 0) {
              if (localad.a(2)) {
                this.j[1] += locale_.b();
              }
            }
            if (n == 0) {
              if (localad.a(8)) {
                this.j[2] += locale_.b();
              }
            }
          } while (!localad.a(4));
          this.j[3] += locale_.b();
        } while (n != 0);
      } while (m == 0);
    }
    
    f_()
    {
      do
      {
        for (int i = 0; m == 0; i++)
        {
          if (i >= 4) {
            break;
          }
          this.h[i] = new z();
          this.j[i] = -1;
        }
      } while (n != 0);
    }
    
    private static Object a(double paramDouble1, double paramDouble2)
    {
      return new a.d.w((int)Math.floor(paramDouble1 * 10.0D), (int)Math.floor(paramDouble2 * 10.0D));
    }
    
    public z a()
    {
      return this.k;
    }
    
    public int c(double paramDouble1, double paramDouble2)
    {
      Object localObject = a(paramDouble1, paramDouble2);
      if (g.Cc == 0) {
        if (this.g.containsKey(localObject)) {
          return ((Integer)this.g.get(localObject)).intValue();
        }
      }
      return -1;
    }
    
    public int a(int paramInt)
    {
      int m = g.Cc;
      int i = 0;
      if (m == 0) {
        if ((paramInt & 0x1) != 0)
        {
          if (m == 0) {
            if (this.j[0] < 0) {
              return 2147483647;
            }
          }
          i += this.j[0];
        }
      }
      if (m == 0) {
        if ((paramInt & 0x2) != 0)
        {
          if (m == 0) {
            if (this.j[1] < 0) {
              return 2147483647;
            }
          }
          i += this.j[1];
        }
      }
      if (m == 0) {
        if ((paramInt & 0x4) != 0)
        {
          if (m == 0) {
            if (this.j[3] < 0) {
              return 2147483647;
            }
          }
          i += this.j[3];
        }
      }
      if (m == 0) {
        if ((paramInt & 0x8) != 0)
        {
          if (m == 0) {
            if (this.j[2] < 0) {
              return 2147483647;
            }
          }
          i += this.j[2];
        }
      }
      return i;
    }
    
    public v a(a.d.w paramw, int paramInt)
    {
      int i = g.Cc;
      if (i == 0) {
        if (paramInt == 1) {
          return this.h[0].b(paramw);
        }
      }
      if (i == 0) {
        if (paramInt == 2) {
          return this.h[1].b(paramw);
        }
      }
      if (i == 0) {
        if (paramInt == 4) {
          return this.h[3].b(paramw);
        }
      }
      if (paramInt == 8) {
        return this.h[2].b(paramw);
      }
      throw new RuntimeException("unknown direction");
    }
    
    public void a(v paramv, int paramInt)
    {
      int m = g.Cc;
      int i = g.Bc;
      if (m == 0) {
        if (paramInt == 1)
        {
          this.h[0].h(paramv);
          if ((m == 0) && (i == 0)) {
            return;
          }
        }
      }
      if (m == 0) {
        if (paramInt == 2)
        {
          this.h[1].h(paramv);
          if ((m == 0) && (i == 0)) {
            return;
          }
        }
      }
      if (m == 0)
      {
        if (paramInt == 4)
        {
          this.h[3].h(paramv);
          if ((m == 0) && (i == 0)) {
            return;
          }
        }
        if (m != 0) {}
      }
      else
      {
        if (paramInt != 8) {
          break label125;
        }
        this.h[2].h(paramv);
      }
      if (i != 0) {
        label125:
        throw new RuntimeException("unknown direction");
      }
    }
    
    public z c(int paramInt)
    {
      int i = g.Cc;
      z localz = new z();
      if (i == 0) {
        if ((paramInt & 0x1) != 0) {
          localz.addAll(this.h[0]);
        }
      }
      if (i == 0) {
        if ((paramInt & 0x2) != 0) {
          localz.addAll(this.h[1]);
        }
      }
      if (i == 0) {
        if ((paramInt & 0x4) != 0) {
          localz.addAll(this.h[3]);
        }
      }
      if ((i != 0) || ((paramInt & 0x8) != 0)) {
        localz.addAll(this.h[2]);
      }
      return localz;
    }
  }
  
  private static class d_
  {
    private a.f.o a;
    private bb b;
    
    private d_(a.f.o paramo)
    {
      this.a = paramo;
      this.b = new bb();
    }
    
    public bb a()
    {
      int k = g.Cc;
      int j = g.Bc;
      c();
      a.c.w localw = this.a.v();
      label185:
      do
      {
        do
        {
          if (!localw.e()) {
            break label201;
          }
          a.c.e locale1 = localw.d();
          a.d.t localt1 = this.a.v(locale1);
          if (j != 0) {
            break label202;
          }
          xc[] arrayOfxc = this.a.f(localw.d());
          if (k == 0)
          {
            if (arrayOfxc != null)
            {
              if (k != 0) {
                break;
              }
              if (arrayOfxc.length > 0)
              {
                int i = 0;
                do
                {
                  if (i >= arrayOfxc.length) {
                    break label185;
                  }
                  xc localxc = arrayOfxc[i];
                  a.d.t localt2 = localxc.c();
                  if (j != 0) {
                    break;
                  }
                  if (!a(localt1, localt2, 3.0D))
                  {
                    a.c.e locale2 = this.a.i();
                    this.a.a(locale2, localt2);
                    this.a.b(locale2, localt2.f());
                    this.b.add(locale2);
                  }
                  i++;
                } while (j == 0);
              }
            }
            localw.f();
          }
        } while (k != 0);
      } while (j == 0);
      label201:
      label202:
      return this.b;
    }
    
    private boolean a(a.d.t paramt1, a.d.t paramt2, double paramDouble)
    {
      int i = g.Cc;
      if (((i != 0) || (paramt1.e() < paramt2.e() + paramDouble)) && ((i != 0) || (paramt1.d() < paramt2.d() + paramDouble)) && ((i != 0) || (paramt1.e() + paramt1.c() > paramt2.e() + paramt2.c() - paramDouble))) {
        if (i != 0) {}
      }
      return paramt1.d() + paramt1.b() > paramt2.d() + paramt2.b() - paramDouble;
    }
    
    public void c()
    {
      int j = g.Cc;
      int i = g.Bc;
      if ((j != 0) || (!this.b.isEmpty()))
      {
        a.c.w localw = this.b.l();
        if (localw.e()) {}
        while (j != 0)
        {
          this.a.a(localw.d());
          localw.f();
          if ((j == 0) && (i != 0)) {
            return;
          }
          if (i == 0) {
            break;
          }
        }
        this.b.clear();
      }
    }
    
    d_(a.f.o paramo, g.6 param6)
    {
      this(paramo);
    }
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.f.l.g

 * JD-Core Version:    0.7.0.1

 */